导航控制器问题

时间:2011-02-23 09:52:03

标签: objective-c xcode ios uinavigationcontroller navigationcontroller

我有一个普通的视图控制器,我想为它添加一个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];
}
它崩溃了,为什么?

1 个答案:

答案 0 :(得分:2)

因为没有弹出视图。当您尝试弹出视图控制器时,预计堆栈中会有一些视图,即您之前已经推送过调用popViewControllerAnimated的视图。

因此弹出不仅仅是令人敬畏的动画,而是导航控制器中的堆栈视图导航。在这种特殊情况下,你试图调用这个堆栈的第一个元素,这就是崩溃的原因。

深入挖掘:

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