UIView 插座和 ChildViewController 有啥区别?
Posted
技术标签:
【中文标题】UIView 插座和 ChildViewController 有啥区别?【英文标题】:What is the difference between a UIView outlet, and a ChildViewController?UIView 插座和 ChildViewController 有什么区别? 【发布时间】:2016-05-18 04:39:44 【问题描述】:假设我在父 UIView 中有一个容器视图。
在我的父 UIView 中将其引用为 Outlet 或以这种方式访问它有什么区别:
categoryContainerViewController = self.childViewControllers[0] as! CategoriesControllerView
【问题讨论】:
【参考方案1】:视图和视图控制器是两个不同的东西 VIEW 是绘制到屏幕上的对象。它还可能包含在其中并随其移动的其他视图(子视图)。视图可以获取触摸事件并更改其视觉状态作为响应。视图是愚蠢的,不知道应用程序的结构,只是被告知以某种状态显示自己。
视图控制器不能直接绘制到屏幕上,它管理一组视图对象。视图控制器通常有一个带有许多子视图的视图。视图控制器管理这些视图的状态。视图控制器很智能,并且了解应用程序的内部工作原理。它告诉哑视图对象做什么以及如何展示自己。
现在您可以了解 View 和视图控制器了。
【讨论】:
【参考方案2】:视图和视图控制器是两个完全不同的东西。
categoryContainerViewController = self.childViewControllers[0] as! CategoriesControllerView
尽管有这个名字,那是一个视图控制器。
出口是视图。
【讨论】:
【参考方案3】:通俗地说:-
IBOutlet 将您的 interface builder 中的任何视图元素连接到附加的 swift class 文件。因此,您可以reference从界面构建器到 UIViewController 或 UIView Swift 类的 UIView 的任何子视图(例如,UILabel、UIButton)
在你的前任里
通过使用
categoryContainerViewController = self.childViewControllers[0] 一样!分类控制器视图
您正在获取对 ChildViewController 的引用,而不是任何视图
【讨论】:
以上是关于UIView 插座和 ChildViewController 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
从外部引用设置属性上的 .attributedText(可通过 NIB 加载的 UIView 内的插座访问)似乎失败