こんにちは、私が行くはずのアプリケーションを開発しています:
UIViewController
1からUIViewController
2UIViewController
2からUIViewController
3UIViewController
3からUIViewController
4UIViewController
4から2UIViewController
に戻る
を使用してUINavigationController
います。私が使用する[self.navigationController pushViewController:VC2 animated:NO];
と、[self.navigationController popViewControllerAnimated:NO];
すべてが正常に機能します。
しかし、私が4つのアプリケーション[self.navigationController popToViewController:VC2 animated:NO];
から使用すると、言って終了しますUIViewController
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.'
以下は私のコードで、どのようにUIViewController
2にポップしていますか
for (UIViewController *vc in self.navigationController.viewControllers) {
if ([vc isKindOfClass:[ViewController2 class]]) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
ViewController2 *VC2 = [storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
[self.navigationController popToViewController:VC2 animated:NO];
}
}
ナビゲーション配列を印刷するとUIViewController
、スタックに 2 と表示されます。UINavigationController
Editor->embed in->Navigation Controller から追加しました
なぜこれが起こっているのか誰か教えてもらえますか?この問題を検索しようとしましたが、何も役に立ちません