0

うまく機能するプッシュセグエを手動で呼び出しています。新しい TableView シーンが表示され、ナビゲーション コントローラーのカスタム ナビゲーション ボタンが完璧に機能します。

ただし、代わりにモーダルセグエにしたいです。そこで、タイプを Modal に変更し、新しいシーンを Navigation Controller に組み込みました。新しいシーンが表示されますが、キャンセル ボタンをタップしてもシーンは消えません。

理由はありますか?ありがとう。

4

1 に答える 1

1

Pushセグエは、表示側のビュー コントローラーも含まれているナビゲーション スタックに新しいビュー コントローラーを追加します。そのため、その場合にナビゲーション バーが機能します。

モーダルセグエは、View Controller をナビゲーション スタックに追加せず、表示中の View Controller の子として追加するため、この場合、定義されたナビゲーションはありません。

モーダルに表示されたコントローラーでナビゲーション バーを機能させたい場合は、アクションを手動で接続する必要があります (例: [戻る] ボタンでモーダルに表示されたコントローラーを閉じるようにします)。

また、@Edwin Iskandar が指摘したように、ビュー コントローラーで適切な却下アクションを呼び出すようにしてください。つまりpopViewControllerAnimated、モーダルに表示されたビュー コントローラーでは機能しません。代わりに呼び出す必要があります。dismissModalViewControllerAnimated

PS: iOS 6dismissModalViewControllerAnimatedを優先して非推奨になったことに注意してくださいdismissViewControllerAnimated:(BOOL) completion:^(void)completion

于 2012-11-07T13:58:15.630 に答える