0

私は、viewcontroller A から、viewcontroller B を rootcontroller とするナビゲーション コントローラーに移行したという非常に興味深い状況に陥っています。Viewcontroller B のキャンセル ボタンをクリックすると、viewcontroller A に戻るセグエがあります (これは、navigationcontroller スタックの一部ではありません)。ただし、これを行うと、A と B の textfields と searchBars が機能しなくなります。

検索バーとテキストフィールドのデリゲートをビューコントローラーに設定し、YES を shouldbeginEditing に返しました。

検索バーをクリックするたびに shouldBeginEditing 関数がトリガーされますが、didbeginediting 関数は呼び出されません。

セグエ経由でナビゲーションコントローラースタックを終了することは想定していませんか?

4

1 に答える 1

1

いいえ、そうではありません。アンワインド セグエ以外のセグエを使用して、コントローラー階層 (あらゆる種類の) で "後方" に移動しないでください。セグエについて覚えておくべき最も重要な事実は、セグエが常に新しいビュー コントローラーを作成することです (アンワインドを除く)。したがって、実際には A に「戻る」のではなく、新しいインスタンスを作成しています。

したがって、アンワインド セグエを使用するか、モーダル セグエを実行している場合は、dismissViewControllerAnimated:completion: を使用して A に戻る必要があります。

于 2013-07-09T16:00:32.703 に答える