ロードしたときに各セルがNSErrorを返す可能性のあるテーブルビューがあり、これをUIAlertControllerに表示するように選択しました。問題は、複数のエラーが返された場合にコンソールでこのエラーが発生することです。
警告:UIAlertController:0x14e64cb00 on MessagesMasterVC:0x14e53d800を表示しようとしていますが、すでに表示されています(null)
理想的には、これをUIAlertController拡張メソッドで処理するのが理想的です。
class func simpleAlertWithMessage(message: String!) -> UIAlertController {
let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.Alert)
let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil)
alertController.addAction(cancel)
return alertController
}
マットの答えに基づいて、私は拡張機能をUIViewController拡張機能に変更しました。これはよりクリーンで、presentViewControllerコードの多くを節約します。
func showSimpleAlertWithMessage(message: String!) {
let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.Alert)
let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil)
alertController.addAction(cancel)
if self.presentedViewController == nil {
self.presentViewController(alertController, animated: true, completion: nil)
}
}