最佳答案
我有一个表格视图,当加载时,每个单元格可能返回一个 NSERror,我已经选择在 UIAlertController 中显示它。问题是,如果返回多个错误,我会在控制台中得到这个错误。
Warning: Attempt to present UIAlertController: 0x14e64cb00 on MessagesMasterVC: 0x14e53d800 which is already presenting (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
}
根据 Matt 的回答,我将扩展更改为 UIViewController 扩展,它更加简洁,并且节省了大量 presViewController 代码。
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)
}
}