2015-02-01 1 views
1

У кого-нибудь когда-либо был контроллер предупреждений с действием «отменить» и просто возврат в обработчик, который что-то делает?UIAlertController сошел с ума, указав на настройки, когда он должен отменить

Mine идет в настройках приложения ....

У меня есть еще предупреждение контроллер в другой ViewController, что делает это. Но это не должно влиять на этот ????

alertControl.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: { (alertAction) -> Void in 
      return 
     })) 

обновление:

комментарии все другие alertController вне. (Все они были в другом контроллере) теперь он больше этого не делает. Что это??

Они также объявляются только в функции, когда что-то идет не так. Когда нет связи, ... Они не должны существовать даже до тех пор, пока функция не будет вызвана.

обновление 2:

func checkAllSettingsForLocation() { 
     if isTest != true { 
     //println("should show this") 

     let alertController = UIAlertController(title: "Scenix can't use your location", message: "Check Location Services under Privacy in the Settings App", preferredStyle: UIAlertControllerStyle.Alert) 

     let goToSettingsAction = UIAlertAction(title: "Go to Settings", style: .Default, handler: { 
      action in 
      UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!) 
      return 

      } 
     ) 
     alertController.addAction(goToSettingsAction) 

     let ignoreNoCamAction = UIAlertAction(title: "Cancel", style: .Default, handler: { 
      action in 
      self.launch = self.launch - 1 
      return 

      } 
     ) 
     alertController.addAction(ignoreNoCamAction) 

     self.presentViewController(alertController, animated: true, completion: nil) 
     } 
    } 

Update 3:

Выглядит все больше и больше, как Xcode Буг.

Здание для выпуска/через испытательный полет и ошибка там. ли нормальная отладочная сборка и все нормально ....


загрязнен фикс =>

Оберните действие из любого оповещения контроллера в заявлении, если что проверяет предупредительное название контроллера. Никогда не может вызвать исключение или привести к обнаружению нуля и исправлению моей проблемы.

+0

Можете ли вы показать больше контекста? Как и где объявляются эти два «конфликтных» контроллера предупреждений? Благодарю. – matt

+0

Я объявляю все мои контроллеры предупреждений в функциях. Им не нужно существовать, если что-то не так. Тот, кто делает вещи, не должен жить в третьем диспетчере представлений. Остальные в первом. (при навигации) –

+0

p.s. все элементы alertcontroller/alerts/обработчики имеют разные имена. –

ответ

2

Попробуйте использовать ноль вместо возврата,

let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil) alertController.addAction(cancel)

У меня также есть некоторые другие настройки контроллеров Уведомления назначения, и это работало отлично для меня.

+0

Да, я собирался прокомментировать странный способ, которым OP это делал, но мне никогда не приходило в голову, что это может быть то, что выявило проблему, которую он видел! Хороший. – matt

+0

Ya Это был определенно выстрел в темноте. –