現在のアプリケーションでは、特定の回数を使用したいのですUICollectionViewが、選択動作が異なります。次のストーリーボード レイアウトを "is" (および動作中) と考えてください。
タブ バー コントローラー (2 項目): -> Navigation Controller 1 -> Collection View Controller -> 一部の Table View Controller -> ナビゲーション コントローラ 2 -> (基本) ビュー コントローラ
には、 へのストーリーボード接続をBasic View Controller持つ 2 つがあります。から に移行したいのですが、コレクションからアイテムを選択すると、ビューがポップされて に戻ります。UIButtonsPushCollection View ControllerBasic View ControllerCollection View ControllerBasic View Controller
Collection View Controllerの対応するprepareForSegueメッセージに設定されるBasic View Controller(または、ユーザーが を選択した場合はまったく設定されない)にカスタム プロパティを設定したTab Bar Itemので、どのコントローラーまたはどの UI コンポーネントがプッシュをトリガーしたかを検出するのに問題はありません (3 つの方法があります)。 : タブ バー項目を選択するか、基本ビューのボタンの 1 つをタップします)。
問題はポップCollection Viewです。
これまでの私のコード:
- (void)prepareForSegue:(UIStoryboardSegue *)segue 送信者:(id)送信者 {
if (self.mode == nil) {
// 何もしない
} そうでなければ ( [self.mode isEqualToString:@"foobar"] ) {
// 私が試した 1 つの方法
[自己却下ViewControllerAnimated:YES完了:nil];
} そうでなければ ( [self.mode isEqualToString:@"blah"] ) {
// その他の方法
BasicViewController *targetVC = self.navigationController.viewControllers[ 0 ];
[self.navigationController popToViewController:targetVC アニメーション:YES];
}
}
残念ながら、私のアプリはそれぞれの行でクラッシュしdismissます。popToViewController. 異なるナビゲーション方法で同じView Controllerを使用することさえ可能ですか?
これが私を助けるのに十分な情報であることを願っています。ご存知かもしれませんが、プロジェクトは成長し、考慮すべきコードが他にあるかどうかはわかりません:)
前もって感謝します!