私は次のように設定されたストーリーボードを持っています:
- ナビゲーション コントローラー --- 接続先 ---> ビュー A ---> テーブル セル セグエ ---> ビュー B
- スタンドアロン ビュー C、つまり、ストーリーボードの他のビューからセグエが接続されていません。
ビュー A のセルをタップすると、ビュー B へのセグエが自動的に実行されます。ビュー B では、ビューが表示されてアプリケーション イベントがトリガーされた後、自動的に閉じられ、ビュー C のインスタンスが次のようにプッシュされます。
ビュー B:
- (void)someEvent
{
ViewCController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewC"];
[self.navigationController pushViewController:controller animated:YES];
}
View C が表示されます。ただし、ビュー C のナビゲーション バーの「戻る」ボタンをタップすると、ビュー B ではなくビュー A に戻ります。これを試しました。
ビュー C:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController popToRootViewControllerAnimated:animated];
}
これは、ビュー C が閉じられ、ビュー A がビュー B をバイパスして戻ってくるという点で、ほぼ期待どおりに機能します。ビュー A. 正しいボタンを表示するには、[戻る] ボタンをもう一度タップする必要があります。
私は何が欠けていますか?