0

У меня есть UICollectionView:Segue из UICollectionViewCell не работает?

class BoatMatchingGame: UICollectionViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource { 

У меня также есть класс для другого ViewController, что я пытаюсь непосредственно перейти к:

class GameOutcome: UIViewController { 
    @IBOutlet var gameOutcomeLabel: UILabel! 
    var boatMatchingGame: BoatMatchingGame! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     gameOutcomeLabel.text = gameOutcomeText 
    } 
} 

В BoatMatchingGame классе у меня есть метод prepareForSegue:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let gameOutcome = segue.destinationViewController as GameOutcome 
    gameOutcome.boatMatchingGame = self; 
} 

Метод didSelectItemAtIndexPath, я хочу выполнить команду segue:

switch indexPath.item { 
    case 14: 
     self.performSegueWithIdentifier("Quit Matching Game", sender: self) 

Я установить идентификатор "Quit Matching Game" в раскадровке. Когда я запустить программу и выбрать cell в indexPath 14, я получаю следующее сообщение об ошибке: Thread 1: EXC_BREAKPOINT (code=EXC_1386_BPT, subcode=0x0) на этой линии в теме: 0x202ebd8: popl %ebp

Примечание: У меня есть ярлык, который меняется каждый второй в этой камере.

Спасибо!

Вот весь поток:

libswiftCore.dylib`swift_dynamicCastClassUnconditional: 
0x2080ba0: pushl %ebp 
0x2080ba1: movl %esp, %ebp 
0x2080ba3: movl 0x8(%ebp), %eax 
0x2080ba6: testl %eax, %eax 
0x2080ba8: je  0x2080bbb     ; swift_dynamicCastClassUnconditional + 27 
0x2080baa: movl 0xc(%ebp), %ecx 
0x2080bad: movl (%eax), %edx 
0x2080baf: nop  
0x2080bb0: cmpl %ecx, %edx 
0x2080bb2: je  0x2080bd8     ; swift_dynamicCastClassUnconditional + 56 
0x2080bb4: movl 0x4(%edx), %edx 
0x2080bb7: testl %edx, %edx 
0x2080bb9: jne 0x2080bb0     ; swift_dynamicCastClassUnconditional + 16 
0x2080bbb: calll 0x2080bc0     ; swift_dynamicCastClassUnconditional + 32 
0x2080bc0: popl %eax 
0x2080bc1: leal 0x38262(%eax), %ecx 
0x2080bc7: movl 0x7748c(%eax), %eax 
0x2080bcd: movl %ecx, 0x8(%eax) 
0x2080bd0: movl $0x0, 0xc(%eax) 
0x2080bd7: int3 
0x2080bd8: popl %ebp 
0x2080bd9: retl 
0x2080bda: nopw (%eax,%eax) 
+0

@vacawama Я перетащил SEGUE от 'BoatMatchingGame' ViewController в «GameOutcome» ViewController в раскадровке. –

ответ

0

Похоже, вы на самом деле не объявлены или инициализированы gameOutcomeText переменных, которую вы используете в GameOutcome «s viewDidLoad.

Если вы установите gameOutcomeText в BoatMatchingGame класса, вы можете получить доступ к нему, используя экземпляр BoatMatchingGame вы передаёте в контроллер GameOutcome вида, например, так:

override func viewDidLoad() { 
    super.viewDidLoad() 
    gameOutcomeLabel.text = boatMatchingGame.gameOutcomeText 
} 
+0

Извините; Я забыл упомянуть, что 'gameOutcomeText' хранится как' public var'. Я попытался переместить его в класс и использовать этот метод, но я все равно получаю ту же ошибку. –

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