アンワインド セグエは、モーダル ビューおよびコンテナー ビューと組み合わせると、iOS 8.1 で期待どおりに動作しないようです。githubにあるテスト プロジェクトのビュー コントローラー階層は次のとおりです。
「タップしてください」ボタンをタップすると、ナビゲーション コントローラーに埋め込まれ、子ビュー コントローラーとして tableView を持つモーダル ビューがプッシュされます。tableView の行をタップすると、別の tableView がプッシュされます。最後に、この最後の tableView の行をタップすると、前のビュー コントローラーで見つかった名前のアンワインド セグエが呼び出されます。bUnwindSegue
問題:
- bUnwindSegue が呼び出されることはありません。
- テクニカル ノートTN2298によると、コンテナー ビュー コントローラーは、セグエを処理する子ビュー コントローラーの選択を担当します。この場合
viewControllerForUnwindSegueAction:fromViewController:withSender:
、コンテナ ビュー コントローラで呼び出す必要があります。そうではありません。
BTableViewController
サンプル プロジェクトでは、アンワインド セグエが含まれていることがわかります。
- (IBAction)bUnwindSegue:(UIStoryboardSegue *)segue;
{
NSLog(@"Unwinding...this unwind segue will never get called.");
}
ストーリーボードでは、セル選択アクションCTableViewController
は確かにbUnwindSegue
. CTableViewController
また、コンテナ ビュー コントローラでセル選択アクションをアンワインド セグエに変更するcontainerVCUnwindSegue
と、セグエが正しく呼び出されることにも注意してください。
アンワインド セグエが期待どおりに動作していませんか?