无法在 UIPopoverController 中显示视图控制器
Posted
技术标签:
【中文标题】无法在 UIPopoverController 中显示视图控制器【英文标题】:Can't present view controller in a UIPopoverController 【发布时间】:2014-10-17 11:18:03 【问题描述】:我在一个导航控制器中嵌入了多个容器视图。现在我正在尝试使用UIPopoverController
来显示视图。该视图之前已经呈现给用户 - 它位于嵌入导航控制器的容器视图中。如果我尝试在弹出窗口中再次呈现视图,我会得到 p>
应用程序试图以模态方式呈现活动控制器
但视图未激活。它只在导航控制器堆栈中的某个地方。这是否意味着您只能将每个视图呈现一次?
编辑:
这个问题的结构如下所示:
视图控制器 > 容器 A(VC1、VC2、VC3)> 容器 B(VC2、VC4)
现在在容器 B 上,VC3 应该以弹出窗口的形式呈现。在容器 B 中的 VC2 上引发了一个事件(C# 事件)。容器 B 应该显示弹出窗口 --> 应用程序崩溃并且我收到上述错误消息。
现在我尝试直接从 VC2 显示弹出窗口。这似乎有效。也许这是一个问题,因为我重用了容器 B 中的弹出框实例。我会检查一下。
【问题讨论】:
在这种情况下,导航控制器是合适的数据持有者吗?听起来您没有使用视图控制器执行任何导航任务。 我正在从一个容器导航到下一个容器。到目前为止,除了UIPopoverController
之外,这有效。
啊,我明白了。 VC 是否有可能拥有自己的视图实例,因此您不必重用它?
两个容器中的每一个都在其构造函数中实例化子视图控制器。应该有两个单独的实例。我不知道这样的重用应该从哪里来。
【参考方案1】:
现在我在捕获事件的容器 B 中创建了一个新的 UIPopoverController
实例。它按预期工作,不再崩溃。
仍然不知道为什么我不能用contentViewController
重复使用弹出框。还是因为我使用的是presentPopoverFromRect
,而另一次使用的是presentPopoverFromBarButtonItem
?
【讨论】:
以上是关于无法在 UIPopoverController 中显示视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
UIPopoverController & UIImagePickerControl:“无法从没有窗口的视图中呈现弹出框”
UIPopoverController?在弹出框控制器外点击时无法关闭
UIPopoverController 中的 UINavigationController:设置标题