我应该在新视图中嵌入视图控制器的视图吗?
Posted
技术标签:
【中文标题】我应该在新视图中嵌入视图控制器的视图吗?【英文标题】:Should I embed a view controller's view within a new view? 【发布时间】:2019-02-05 20:58:36 【问题描述】:当向 Storyboard 中的现有视图控制器添加外部视图控制器时,您将使用“容器视图”。以编程方式添加一个时,您可以选择创建一个新的 UIView
以将外部 VC 的视图嵌入其中(复制容器视图),或者只是将外部 VC 的 .view
直接添加到现有的视图中。
以编程方式执行此操作时,这里认为哪种做法更好?一种对性能或可靠性的影响是否与另一种不同?
【问题讨论】:
【参考方案1】:在 Storyboard 中使用容器视图可自动执行以下过程:
实例化视图控制器 添加为 childViewController 将其视图添加为容器视图的子视图(即主视图的子视图)通过代码添加子视图控制器是同一个过程:
实例化视图控制器 添加为 childViewController 将其视图添加为当前视图的子视图,或作为当前视图的另一个子视图的子视图在 Storyboard 中使用容器视图的另一个好处是您可以获得可视化设计界面。
当然,有些人不喜欢 Storyboard / IB,而更喜欢纯代码方法。
真的,无论哪种方法最适合您的需求和开发风格。
【讨论】:
您对通过情节提要添加容器视图时发生的情况的解释正是我想要的。非常感谢。以上是关于我应该在新视图中嵌入视图控制器的视图吗?的主要内容,如果未能解决你的问题,请参考以下文章
prepareForSegue 未在嵌入式 segue 中调用
AngularJS - 类似视图 - 我应该对多个控制器使用相同的视图吗?
当我将视图添加到另一个视图(并且这两个视图都由视图控制器控制)时,我真的应该使用 addChildViewController 吗?