現在のアプリケーションでは、特定の回数を使用したいのですUICollectionView
が、選択動作が異なります。次のストーリーボード レイアウトを "is" (および動作中) と考えてください。
タブ バー コントローラー (2 項目): -> Navigation Controller 1 -> Collection View Controller -> 一部の Table View Controller -> ナビゲーション コントローラ 2 -> (基本) ビュー コントローラ
には、 へのストーリーボード接続をBasic View Controller
持つ 2 つがあります。から に移行したいのですが、コレクションからアイテムを選択すると、ビューがポップされて に戻ります。UIButtons
Push
Collection View Controller
Basic View Controller
Collection View Controller
Basic 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を使用することさえ可能ですか?
これが私を助けるのに十分な情報であることを願っています。ご存知かもしれませんが、プロジェクトは成長し、考慮すべきコードが他にあるかどうかはわかりません:)
前もって感謝します!