로드 될 때 각 셀이 UIAlertController에 표시하도록 선택한 NSError를 반환 할 수있는 tableview가 있습니다. 문제는 여러 오류가 반환되면 콘솔 에이 오류가 발생한다는 것입니다.
경고 : MessagesMasterVC에서 UIAlertController : 0x14e64cb00을 표시하려고합니다 : 이미 표시되고있는 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
}
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)
}
}