2015-10-11 1 views
1

Я получаю вышеуказанную ошибку на контроллере представления, хотя у меня есть тот же самый код в другом контроллере представления, где Я не получаю сообщение об ошибке:Попытка загрузить представление контроллера представления во время его освобождения ... (<UIAlertController:>)

override func viewDidAppear(animated: Bool) { 

    super.viewDidAppear(animated) 

    let alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .Alert) 
    alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) 
    alertController.addAction(UIAlertAction(title: "Settings", style: UIAlertActionStyle.Default, handler: { 
     action in 
      UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 
     } 
     )) 
    if self.presentedViewController == nil{ 
     self.presentViewController(alertController, animated: true, completion: nil) 
    } 
} 

ответ

0

Я закончил тем, что объявить alertController как свойство класса, а затем изменить мой viewDidAppear следующим образом:

override func viewDidAppear(animated: Bool) { 

    super.viewDidAppear(animated) 

     if self.alertController.actions.count == 0 { 
      self.alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) 
      self.alertController.addAction(UIAlertAction(title: "Settings", style: UIAlertActionStyle.Default, handler: { action in UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 
       } 
       )) 
      if self.presentedViewController == nil { 
       self.presentViewController(self.alertController, animated: true, completion: nil) 
      } 
     } 
} 
Смежные вопросы

 Смежные вопросы