UITableViewController
型のクラスがあります。このクラスには、テーブルビューの編集ボタンを追加するために使用するタイプUINavigationBar
のメンバーがあります。
このメソッドの使用は無効です。
[self.navigationController pushViewController:controller];
UITableViewController
をUINavigationController
でラップせずに、テーブル行を選択した後、詳細ビューをビューにプッシュするにはどうすればよいですか?
ナビゲーションコントローラーがない場合、ビューコントローラーをナビゲーションコントローラーにプッシュすることはできません。コントローラーをプッシュして、最上位のコントローラーとすべてを表示させたい場合は、UINavigationControllerを使用して完了します。
任意の INavigationItem sをUINavigationBarにプッシュできます。ユーザーが戻るボタンを使用すると、バーのデリゲートに通知されるため、適切なアクションを実行できます。詳細については、 ドキュメント を参照してください。
ナビゲーションコントローラーを使用したくない場合の最も近い代替手段は、モーダルビューコントローラーです。
[self presentViewController:controller animated:YES completion:nil];
これにより、コントローラーが下から画面にスライドします。コントローラーのmodalTransitionStyle
を変更すると、コントローラーが反転したり、フェードインしたりできます。
コントローラを閉じるには、次のコマンドを呼び出します。
[self dismissViewControllerAnimated:YES completion:nil];
また、通常どおりナビゲーションコントローラーを使用して非表示にすることもできます。
ストーリーボードを使用してナビゲーションコントローラーを非表示にするには:それを選択し、属性インスペクターで[ナビゲーションバーを表示]のチェックを外します。他の人は、各コントローラーのナビゲーションバーを非表示にすることを提案するかもしれませんが、それに関する問題は、それが1ミリ秒表示されてから消えることです。
UITableViewをUINavigationController内にラップし、UINavigationBarを非表示にします。
[self.navigationController setNavigationBarHidden:YES animated:NO];
次に、ViewControllerをスタックからポップする戻るボタンを作成します。
[self.navigationController popViewControllerAnimated:YES]
UINavigationController
がないと、ViewControllerをプッシュできないのは事実です。むしろ、UIViewController.present(_ viewControllerToPresent:, animated:, completion:)
を介してビューコントローラーをモーダルに提示します
ただし、カスタムセグエを作成して、ビューコントローラをプッシュ(またはその他の必要なアニメーション)であるかのように表示することは可能ですが、UINavigationController
を使用すると作業が簡単になるようです。
ドキュメントへの関連リンクは次のとおりです。