ボタンを表示するビューコントローラーを備えたナビゲーションコントローラーがあります。ボタンは、プッシュボタンを使用して別のビューコントローラーにリンクされています。これはすべて正常に動作します。戻るボタンを押すと、2番目のビューからスライドして最初のビューに戻ります。
2番目のビューコントローラーにボタンがあり、これを押すとコードが実行され、1番目のビューコントローラーへのデリゲートコールバックが実行されます。再びこれはうまくいきます。
ここで、戻るボタンが押されたかのように、コードから2番目にプッシュされたビューを閉じる必要があります。私はdismissModalViewCcontrollerAnimatedとdismissViewControllerAnimatedを使用してみましたが、どちらもビュー2と1を削除するナビゲーションコントローラー全体を閉じます(メインメニューにbakを返します)。
ビューからスライドする正しい方法を教えてください。
UINavigationControllerへの参照を取得して呼び出します
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
その上に。
Swiftでは、メソッドを呼び出します
self.navigationController?.popViewControllerAnimated(true)
プッシュセグエを使用する場合は、popViewControllerを使用します。
@IBAction func backButtonClicked(_ sender: Any) {
self.navigationController?.popViewController(animated: false)
}
Swiftでは、次のように呼び出すこともできます。
self.navigationController?.popToRootViewControllerAnimated(true)
Objective-Cでは
[self.navigationController popViewControllerAnimated:YES];
最初のroot
コントローラへのジャンプ
[self.navigationController popToRootViewControllerAnimated:YES];
または特定のコントローラへの可能な移動です
[self.navigationController popToViewController:(nonnull UIViewController *) animated:(BOOL)];
コントローラを動かすアニメーション固有のアニメーションプロセス。アニメーションがfalse
の場合、コントローラーはアニメーションなしで表示されます。 UIViewController
は、スタックにあるものからである必要があります。
NavViewControllerがUIModalPresentationFullScreenで使用される場合、以下の行が機能します
self.navigationController?.dismiss(animated: true, completion: nil)