0

私は通常のViewControllerを持っていて、それにuinavigationcontrollerを追加したいので:


[self.view addSubview:aNavigationController.view];
すべてが正常に機能します。aNavigationControllerはIBOutletであり、XIBではビューコントローラーが別のxibから読み込まれ、ナビゲーションコントローラーのビューコントローラーのクラスで次のように入力します。

- (IBAction)anAction {
[self.navigationController pushViewController:aViewController animated:YES];
}
すべてが正常に機能し、ビューがaViewControllerビューに変わり、アニメーション化されますが、aViewControllerのクラスに入力すると、次のようになります。

- (IBAction)anotherAction {
[self.navigationController popViewControllerAnimated:YES];
}
クラッシュします、なぜですか?

4

1 に答える 1

2

ポップするビューがないため。ビューコントローラをポップしようとすると、スタックにいくつかのビューがあることが予想されます。つまり、呼び出し元のビューpopViewControllerAnimatedがすでにプッシュされています。

したがって、ポップは素晴らしいアニメーションであるだけでなく、ナビゲーションコントローラーのビューのスタックをナビゲートします。この特定の状況では、このスタックの-1番目の要素を呼び出そうとしています。これが、クラッシュの原因です。

ここでさらに深く掘り下げます:

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/NavigationControllers/NavigationControllers.html#//apple_ref/doc/uid/TP40007457-CH103-SW1

于 2011-02-23T10:04:51.270 に答える