navigationController
のviewControllers
プロパティを設定することができます。この遷移をアニメーション化したい場合は、それも可能です。あなたの例では
navigationController?.viewControllers = []
navigationController?.setViewControllers([], animated: true)
あなたがCに到達するとき、あなたが持ってたらスタックからAとBを削除します
navigationController?.viewControllers = [self]
を持っていると思いますあなたはそれをviewDidAppear
に入れなければならないかもしれませんが、Cが画面上に終わるたびにスタックをフラッシュしない限り、一度だけそれを行うようにしてください。
また、あなたが
pushViewController
let cViewController = CViewController()
navigationController?.setViewControllers([cViewController], animated: true)
の代わりに試みることができると私は前方にあなたをプッシュして、スタックからAとBを削除します信じてCにプッシュしようとしているとき
var initialLoad:Bool = true
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if initialLoad {
initialLoad = false
navigationController?.viewControllers = [self]
}
}
。時々、ポップをアニメーション化するスタックの現在の状態に応じて
をしたくないという場合は、あなたのViewController Cは、ナビゲーションバーを持って、私は正しいですか? – Aakash
[ビューコントローラを以前のビューコントローラのどれかに迅速にポップする方法は?](http://stackoverflow.com/questions/26343546/how-to-pop-view-controller-to-one-of-以前のビューコントローラの中で) – pableiros
@pableirosは既にスタック上にあるビューコントローラにポップしたくないので、ナビゲートせずにスタックからそれらをポップしたいと思っています – Magoo