うまく機能するプッシュセグエを手動で呼び出しています。新しい TableView シーンが表示され、ナビゲーション コントローラーのカスタム ナビゲーション ボタンが完璧に機能します。
ただし、代わりにモーダルセグエにしたいです。そこで、タイプを Modal に変更し、新しいシーンを Navigation Controller に組み込みました。新しいシーンが表示されますが、キャンセル ボタンをタップしてもシーンは消えません。
理由はありますか?ありがとう。
うまく機能するプッシュセグエを手動で呼び出しています。新しい TableView シーンが表示され、ナビゲーション コントローラーのカスタム ナビゲーション ボタンが完璧に機能します。
ただし、代わりにモーダルセグエにしたいです。そこで、タイプを Modal に変更し、新しいシーンを Navigation Controller に組み込みました。新しいシーンが表示されますが、キャンセル ボタンをタップしてもシーンは消えません。
理由はありますか?ありがとう。
Pushセグエは、表示側のビュー コントローラーも含まれているナビゲーション スタックに新しいビュー コントローラーを追加します。そのため、その場合にナビゲーション バーが機能します。
モーダルセグエは、View Controller をナビゲーション スタックに追加せず、表示中の View Controller の子として追加するため、この場合、定義されたナビゲーションはありません。
モーダルに表示されたコントローラーでナビゲーション バーを機能させたい場合は、アクションを手動で接続する必要があります (例: [戻る] ボタンでモーダルに表示されたコントローラーを閉じるようにします)。
また、@Edwin Iskandar が指摘したように、ビュー コントローラーで適切な却下アクションを呼び出すようにしてください。つまりpopViewControllerAnimated
、モーダルに表示されたビュー コントローラーでは機能しません。代わりに呼び出す必要があります。dismissModalViewControllerAnimated
PS: iOS 6dismissModalViewControllerAnimated
を優先して非推奨になったことに注意してくださいdismissViewControllerAnimated:(BOOL) completion:^(void)completion