swiftでiOSアプリの開発をしているのですがBackボタンでの画面遷移がうまく行かず困っております。
###画面遷移
Aから順に画面遷移していき、C’でBackボタンを押した際にBに遷移させたいと思っています。
また、BでBackボタンを押した際にはAに戻したいと思っています。
EからC'に遷移する際にアニメーションを入れてる都合があり、EのviewControllerのwilldisappearでself.navigationController?.viewControllers.removeLastを使えませんでした。
そのためCに遷移した際に一つ前のviewContorollerがEの場合(C’と判別する)に、
C、D、EのviewControllerを削除すればいいかなと思い下記コードを試してみました。
###試したコード
swift
1let count = (self.navigationController?.viewControllers.count)! - 2 2 if ((self.navigationController?.viewControllers[count] as? EのViewController) != nil) { 3 self.navigationController?.viewControllers.removeAtIndex(count) 4 self.navigationController?.viewControllers.removeAtIndex(count - 1) 5 self.navigationController?.viewControllers.removeAtIndex(count - 2) 6 }
###上記コードでの問題点
C'でBackボタンを押すとメインのviewはBが表示されるのですが、navigationBarだけEに遷移してしまいます。さらにBackを押すとD->C->Bと遷移します。
わかりづらい部分がありましたら申し訳ございません。
なにとぞよろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。