У меня есть табличное представление, которое при загрузке каждая ячейка может вернуть NSError, который я выбрал для отображения в UIAlertController. Проблема в том, что я получаю эту ошибку в консоли, если возвращаются несколько ошибок.Каков наилучший способ проверить, уже ли отображается UIAlertController?
Предупреждение: Попытка представить UIAlertController: 0x14e64cb00 на MessagesMasterVC: 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
}
На основании ответа Мэтта, я изменил расширение на расширение 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)
}
}
Благодарим за отправку обновленного кода. – djbp
Я также переместил остальную часть кода (три строки для настройки UIAlertController) в оператор If, потому что он все еще выдавал следующую ошибку. (Попытка загрузить представление контроллера представления при его освобождении не разрешена и может привести к в неопределенном поведении) – Kitson
Я хотел бы обратиться к решению по ссылке ниже: http://stackoverflow.com/a/39994115/1872233 – iDevAmit