“presentViewController”呈现viewController的childViewController会导致错误?
问题描述:
- 这里有一个
viewController
这里。在addChildViewController
函数中,我添加了一个tableViewController
作为其子。 -
现在,我们可以看到的是
viewController's
,但我想显示tableViewController's tableView
。“presentViewController”呈现viewController的childViewController会导致错误?[viewController presentViewController:tableViewController animate:YES xxx:xxx]
我在第2步触发做哪些错误:
“Application tried to present modally an active controller.”
所以,问题是:
如果我想我通过实现这一目标显示的
childViewController
的视图,我不能使用presentViewController
函数吗?如果是这样,为什么?
我该如何解决问题?
非常感谢您的阅读和回答。我寻找了几天的理由。
答
这就是给你的答案线索“应用程序试图模态呈现活跃控制器”。
解决办法有两个:
使用presentViewController
的1.Instead,你应该使用addSubview
这样的:
[viewController.view addSubview:tableViewController.view];
使用addChildViewController
的2.Instead:
// [viewController addChildViewController:tableViewController];
[viewController.view presentViewController:tableViewController animate:YES completion:nil];
+0
解决了我的问题!多谢!! – tan
将控制器添加为子控件时,还必须将该控制器的视图添加为父控制器视图的子视图。你不应该调用'presentViewController:animated:'。您应该阅读Apple的文档“创建自定义容器视图控制器”。 – rdelmar
@rdelmar thx很多!我已阅读文档,并且对我有所帮助! – tan