我有一个主视图控制器并且正在呈现子视图。对于子项中的一个设置,我需要再次调用主视图控制器。它会让事情变得更容易。
以下导致层次结构问题:
#define appDelegate (MyAppDelegate *)[[UIApplication sharedApplication] delegate]
[self presentViewController:[appDelegate mainViewController] animated:YES completion:^{}];
有没有办法在不丢失子视图状态的情况下轻松调用mainViewController?
修改
以下是我如何展示儿童观点。
ChildViewController *childViewController = [[ChildViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:childViewController];
[childViewController release];
[self presentModalViewController:navigationController animated:NO];
[navigationController release];
答案 0 :(得分:2)
您无法呈现已经呈现或位于导航堆栈中的视图控制器。什么是mainViewController?你实例化了吗?它已被添加到屏幕了吗?
如果两者都同意,您需要先退回(解雇)或先将其从父级中删除然后再显示。
答案 1 :(得分:0)
在子视图中,您应该可以访问应用程序委托及其mainViewController属性,如下所示:
MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];