2015-03-08 2 views
0
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "DeckViewSegue" { 
      let navigationViewController: DeckViewNavigationController = segue.destinationViewController as DeckViewNavigationController 
      let deckViewMenu: DeckViewMenu = navigationViewController.viewControllers[0] as DeckViewMenu 
      let nameOfDeck = currentDeckName 
      deckViewMenu.currentDeckName = nameOfDeck 
     } 
     if segue.identifier == "DeckTestSegue" { 
      /* 
      let navigationViewController: DeckTestNavigationController = segue.destinationViewController as DeckTestNavigationController 
      let deckTestMenu: DeckTestMenu = navigationViewController.viewControllers[0] as DeckTestMenu 
      let nameOfDeck = currentDeckName 
      deckTestMenu.currentDeckName = nameOfDeck 
      */ 
      println("DeckTestSegue Success") // This still prints in the console 
     } 
} 

Код выше компилируется нормально, и когда второй переход щелкает консольные распечатывает: DeckTestSegue Success(lldb) ошибка без комментариев после передачи информации со вторым Segue

Но проблема возникает, когда кусок коды что прохождение информации является раскомментировано:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "DeckViewSegue" { 
      let navigationViewController: DeckViewNavigationController = segue.destinationViewController as DeckViewNavigationController 
      let deckViewMenu: DeckViewMenu = navigationViewController.viewControllers[0] as DeckViewMenu 
      let nameOfDeck = currentDeckName 
      deckViewMenu.currentDeckName = nameOfDeck 
     } 
     if segue.identifier == "DeckTestSegue" { 
      let navigationViewController: DeckTestNavigationController = segue.destinationViewController as DeckTestNavigationController 
      let deckTestMenu: DeckTestMenu = navigationViewController.viewControllers[0] as DeckTestMenu 
      let nameOfDeck = currentDeckName 
      deckTestMenu.currentDeckName = nameOfDeck 
      println("DeckTestSegue Success") 
     } 
} 

Когда перекомпилировать и второй переход будет нажат, то сбои программы и консоль просто имеет ошибку (lldb) без другой информации.

+0

Положите точку останова и проверьте, в какой строке программа сбой –

ответ

0

Из кода, я думаю, что следующий код вызывает сбой.

let deckTestMenu: DeckTestMenu = navigationViewController.viewControllers[0] as DeckTestMenu 

В своем вопросе вы говорите, что первый сеанс работает. В этом коде вы написали, как:

let deckViewMenu: DeckViewMenu = navigationViewController.viewControllers[0] as DeckViewMenu 

Если это работало, то вторая отливка потерпит неудачу, потому что navigationViewController.viewControllers[0] является экземпляром DeckViewMenu не DeckTestMenu.

+0

Даже после изменения переменной я все равно получаю ту же ошибку при любых предложениях? – YellowPillow

+0

@ user3529361: Вы можете сказать мне, что там нового кода? –

+0

Я изменил имя переменной: 'let deckTestMenu: DeckTestMenu = deckTestNavigationController.viewControllers [0] as DeckTestMenu' – YellowPillow

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