2 つの異なるモーダル ビュー コントローラーにセグエするビュー コントローラーを備えたストーリーボードを使用する iOS アプリがあります。1 つのセグエはボタンによってトリガーされ、もう 1 つのセグエはタイマーによってトリガーされます。ボタンのタッチアップとタイマーが近づきすぎない限り、どちらも正常に機能します。ボタンからのセグエがタイマーからのセグエの直前に発生した場合、ボタンからのセグエは実行されますが、prepareForSegue が呼び出されても、タイマーからのセグエは表示されません。
これが prepareForSegue コードです。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"segueFromTimer"]) {
// Get destination view
fromTimerViewController *vcTimer = [segue destinationViewController];
// do some stuff
// ...
}
if ([[segue identifier] isEqualToString:@"segueFromButton"]) {
// Get destination view
fromButtonViewController *vcButton = [segue destinationViewController];
// do some stuff
// ...
}
}
prepareForSegue にブレークポイントを設定すると、それが id = segueFromTimer で呼び出され、destinationViewController が有効に見えることを確認できますが、segueFromTimer セグエは表示されません。