iPhone - 使用子视图中的按钮更改导航控制器的视图

时间:2011-10-17 09:19:57

标签: iphone sdk navigationcontroller

我有一个带有rootview的导航控制器。 rootview包含按钮,可以正确地将新视图推送到导航控制器。

但是,在这个rootview上,我还有子视图(它是一个滚动预览,就像appStore图像一样,视图由3个UIview项组成)。在这些UIViews上,有一个按钮,我想像其他按钮一样更改rootview导航控制器。

目前,它构建并运行,但新视图未被推送。有什么想法吗?

单击ScrollItem按钮上的方法:

MyViewController *newView = [[MyViewController alloc] initWithNibName:@"ManageMyPain" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:newView animated:YES];  

...我想这是因为,self没有导航控制器,但rootview确实如此。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果将属性“navigationController”推送到导航控制器堆栈,则只在视图控制器中设置该属性。你的第二个视图是push viewcontroller的子视图,这意味着这个属性是NULL,如果你尝试向它推送它,它将不会做任何事情。

答案 1 :(得分:0)

是的,因为如果您没有在导航堆栈上推送该控制器,或者您没有手动设置它,那么self.navigationController将为零。

因此,您只需要引用rootViewController.navigationController,然后[navigationController pushViewController:newView animated:YES];就能完美运作。