【发布时间】:2015-03-31 23:00:46
【问题描述】:
我有一个表格视图,在加载时,每个单元格都可能返回一个 NSError,我选择在 UIAlertController 中显示它。问题是如果返回多个错误,我会在控制台中收到此错误。
警告:尝试在 MessagesMasterVC 上呈现 UIAlertController: 0x14e64cb00: 0x14e53d800 已经呈现(空)
理想情况下,我希望在我的 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
}
根据 matt 的回答,我将扩展更改为 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)
}
}
【问题讨论】:
-
感谢您发布更新后的代码。
-
我还将其余代码(设置 UIAlertController 的三行代码)移到 If 语句中,因为它仍然给出以下错误(尝试加载视图控制器的视图,而它是不允许解除分配,可能会导致未定义的行为)
-
我想参考以下链接的解决方案,请查看stackoverflow.com/a/39994115/1872233
标签: ios uialertcontroller