NavControllerに4つのViewControllerが接続されています。それらの順序は1-> 2-> 3-> 4です。ユーザーが4で戻るボタンを押すと、3の代わりに2にリダイレクトされるようにします。同時に、戻るボタンを押したときに2に戻るようにしたいと思いますこれは可能ですか?前もって感謝します。Swift - NavigationControllerからViewControllerを削除するにはどうすればいいですか?
答えて
もちろんこれを行うことができます。 4番目のViewControllerで左のバーボタンを作成するだけです。そのボタンアクションにあなたがナビゲーションスタックのコントローラをチェックすることができる第二のViewController
if let viewcontroller = self.navigationController?.viewControllers[1] where viewcontroller.isKindOfClass(YourController) {
self.navigationController?.popToViewController(viewcontroller, animated: false) }
Swift3の小さな変更点:viewcontroller = self.navigationController?.viewController [1]、viewcontrollerはYourViewControllerです。 let _ = self.navigationController?.popToViewController(viewcontroller、animated:false)} –
ありがとうございました!出来た。私は絶対初心者だからもう一つの質問:これをバックボタンにどのように割り当てるのですか?私はUIBarButtonSystemItemsのリストを調べましたが、利用可能な戻るボタンはないようです。 – qunayu
第4ビューコントロールのviewDidload self.navigationItem.leftBarButtonItem = UIBarButtonItem(image:image、style:.Plain、target:self、action:#セレクタ(self.back(_ :)) アクションfunc backButtonAction(送信者:AnyObject) ){ if viewcontroller = self.navigationController?.viewControllers [1]ここで、viewcontroller.isKindOfClass(YourController){ self.navigationController?.popToViewController(viewcontroller、animated:false)} } – Sahil
if let vc = self.viewControllerWithClass(YourVC.self) {
self.popToViewController(vc, animated: true)
}
extension UINavigationController {
func viewControllerWithClass(_ aClass: AnyClass) -> UIViewController? {
for vc in self.viewControllers {
if vc.isMember(of: aClass) {
return vc
}
}
return nil
}
}
にポップ。
let controllers = navigationController!.viewControllers.reverse()
for controller in controllers
{
if controller.isKindOfClass(YourController)
{
self.navigationController?.popToViewController(controller, animated: true)
return
}
}
- 1. navigationControllerのviewControllersから特別なコントローラを削除するにはどうすればいいですか?
- 2. navigationcontrollerの下から上へviewcontrollerを表示/非表示するにはどうすればいいですか?
- 3. GameScene.swiftからViewControllerを削除するにはどうすればよいですか?
- 4. SwiftのGoogleマップのinfowindowから新しいViewControllerにアクセスするにはどうすればよいですか?
- 5. Swiftの文字列から\ nを削除するにはどうすればよいですか?
- 6. プッシュセグからストーリーボードでviewControllerを解除するにはどうすればいいですか?
- 7. 削除されたファイルからPyDevデバッガブレークポイントを削除するにはどうすればよいですか?
- 8. ディスクからファイルを削除せずにファイルを削除するにはどうすればよいですか?
- 9. Firebaseプロジェクトからアプリを削除/削除するにはどうすればよいですか?
- 10. モーダルViewControllerから親ViewControllerにデータを送信するにはどうすればよいですか?
- 11. iPhoneでシャドウを削除するにはどうすればいいですか?
- 12. プログラムからXcodeプロジェクトからグループを削除するにはどうすればいいですか?
- 13. 別のレイヤーからシーンからレイヤーを削除するにはどうすればいいですか? (Cocos2d)
- 14. ファイルを削除できるかどうかを確認するにはどうすればいいですか?
- 15. mysql-tableからいくつかのデータを削除するにはどうすればいいですか?
- 16. ローダーアイコンフォームを削除するにはどうすればいいですか?
- 17. FOSRestBundle:{_format}パラメータを削除するにはどうすればいいですか?
- 18. UITextView、リターンキーを削除するにはどうすればいいですか?
- 19. Railsのメッセージボードを削除するにはどうすればいいですか?
- 20. Switchステートメントを削除するにはどうすればいいですか?
- 21. Popcorn.js - キューを削除するにはどうすればいいですか?
- 22. Koolwired.Imap - メッセージを削除するにはどうすればいいですか?
- 23. CLを削除するにはどうすればいいですか?
- 24. デフォルトのコンストラクタを削除するにはどうすればいいですか?
- 25. Googleコンテナレジストリからコンテナイメージをきれいに削除するにはどうすればよいですか?
- 26. ViewControllerにメニューをリンクするにはどうすればいいですか?
- 27. Northwindからdbo.Customerなどのデータを削除するにはどうすればいいですか?
- 28. jQueryを単純なjQueryから削除するにはどうすればいいですか?addClass/removeクラスからjankを削除するには
- 29. リサイクルされたビューから `OnClickListeners`を削除するにはどうすればいいですか?
- 30. ウィンドウからviewControllerを削除する
アンワインドセグを使用すると、多くの同様の回答があります。ここには[ワン](http://stackoverflow.com/q/24029586/5099208) – Idan
あなたは迅速な答えをしたい場合は、これを見てくださいhttp://stackoverflow.com/questions/31878108/ios-swift-poptoviewcontroller -by-name –
未処理のセグを使用します。http://stackoverflow.com/questions/12561735/what-are-unwind-segues-for-and-how-do-you-use-them – Cruz