0

我有一个普通的视图控制器,我想向它添加一个 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已被较早推送。

所以弹出不仅仅是很棒的动画,而是通过导航控制器中的视图堆栈导航。在这种特殊情况下,您试图调用此堆栈的 -1st 元素,这就是崩溃的原因。

在这里深入挖掘:

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

于 2011-02-23T10:04:51.270 回答