从子视图控制器呈现主视图控制器

时间:2012-09-29 22:31:15

标签: ios uiviewcontroller

我有一个主视图控制器并且正在呈现子视图。对于子项中的一个设置,我需要再次调用主视图控制器。它会让事情变得更容易。

以下导致层次结构问题:

#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];

2 个答案:

答案 0 :(得分:2)

您无法呈现已经呈现或位于导航堆栈中的视图控制器。什么是mainViewController?你实例化了吗?它已被添加到屏幕了吗?

如果两者都同意,您需要先退回(解雇)或先将其从父级中删除然后再显示。

答案 1 :(得分:0)

在子视图中,您应该可以访问应用程序委托及其mainViewController属性,如下所示:

    MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];