我有一个带有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确实如此。
谢谢!
答案 0 :(得分:1)
如果将属性“navigationController”推送到导航控制器堆栈,则只在视图控制器中设置该属性。你的第二个视图是push viewcontroller的子视图,这意味着这个属性是NULL,如果你尝试向它推送它,它将不会做任何事情。
答案 1 :(得分:0)
是的,因为如果您没有在导航堆栈上推送该控制器,或者您没有手动设置它,那么self.navigationController
将为零。
因此,您只需要引用rootViewController.navigationController
,然后[navigationController pushViewController:newView animated:YES];
就能完美运作。