“presentViewController”呈现viewController的childViewController会导致错误?

问题描述:

  1. 这里有一个viewController这里。在addChildViewController函数中,我添加了一个tableViewController作为其子。
  2. 现在,我们可以看到的是viewController's,但我想显示tableViewController's tableView“presentViewController”呈现viewController的childViewController会导致错误?

    [viewController presentViewController:tableViewController animate:YES xxx:xxx]

  3. 我在第2步触发做哪些错误:“Application tried to present modally an active controller.”

所以,问题是:

  1. 如果我想我通过实现这一目标显示的childViewController的视图,我不能使用presentViewController函数吗?

  2. 如果是这样,为什么?

  3. 我该如何解决问题?

非常感谢您的阅读和回答。我寻找了几天的理由。

+0

将控制器添加为子控件时,还必须将该控制器的视图添加为父控制器视图的子视图。你不应该调用'presentViewController:animated:'。您应该阅读Apple的文档“创建自定义容器视图控制器”。 – rdelmar

+0

@rdelmar thx很多!我已阅读文档,并且对我有所帮助! – tan

这就是给你的答案线索“应用程序试图模态呈现活跃控制器”。

解决办法有两个:

使用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