动态加载的UIStackView上的分离控制器问题

时间:2016-06-10 04:07:04

标签: ios swift uiviewcontroller uistoryboard uistackview

我在一个有点专业的架构中得到“不鼓励在分离的视图控制器上呈现视图控制器”的警告。并且 - 由此产生了一些相当大的UI问题。我的故事板中有一个包含2个不同的未连接组的体系结构。第一组是我的应用程序的主界面,包括一个UIStackView。第二组由UIView加上附加的popover segue组成,如下图所示。

enter image description here

我使用组2的UIView的最多8个实例动态填充组1的UIStackView。这是在UIStackView子类中名为loadViews()的函数中完成的,该函数根据需要调用。这是用于说明的清理伪代码:

<script src="/js/jquery-1.11.1.min.js" async="async"></script>  

每当我在堆栈视图中的一个嵌入式绿色视图上触发弹出窗口时,我都会收到上面的警告。更重要的是,在拆分视图模式下在iPad上运行时,堆栈视图每次都会丢失绿色视图,直到没有剩余。后者只是一个显示问题,因为刷新后所有视图都回来了。

我完全难过,我不确定如何解决这个问题或者以不同的方式实施。如果问题是没有附加加载的视图,它们可以“重新附加”吗?或者有没有办法动态加载堆栈视图,最多可以附加256个视图?

1 个答案:

答案 0 :(得分:0)

解决:

将Xcode警告铭记于心的另一个教训 - 即使使用了不鼓励这个词。在这种情况下,事情往往会破裂。后见之明,解决方案显而易见。实例化为greenVC的新视图控制器必须附加到包含视图控制器 - 即包含此UIStackView的视图层次结构中的几个层:

vcContainingStackView.addChildViewController(greenVC)

在将greenVC附加到我添加的视图控制器数组之前调用上面的行。当然现在必须调用removeFromParentViewController(),其中GreenVC的实例被删除,否则就是这样。警告消失了,观点也消失了。

相关问题