快速,为啥我必须使用 IBaction 或 IBOutlet 在代码和 UI 之间进行通信?
Posted
技术标签:
【中文标题】快速,为啥我必须使用 IBaction 或 IBOutlet 在代码和 UI 之间进行通信?【英文标题】:In swift, why do I HAVE to use IBaction or IBOutlet to communicate between code and UI?快速,为什么我必须使用 IBaction 或 IBOutlet 在代码和 UI 之间进行通信? 【发布时间】:2016-07-24 07:52:47 【问题描述】:我是编程新手,我正在尝试在 Swift ios 中理解这个概念。必须使用 IBaction 和 IBoutlet 将 UIButtons 和 UILabels 之类的东西连接到我的代码有什么好处?
他们为什么不让我们将 UI 对象设置为等于 button1 或 label1 之类的名称,以便我们可以在我的代码中使用这些名称来调用和改变它们?
【问题讨论】:
基本上,它们只是名称。感谢 Obj-C 运行时,nib 加载机制可以根据插座名称设置您的 ivars。 【参考方案1】:你没有。 IBAction 和 IBOutlet 是在取消归档 nib 的 XML 字典时,使用 Interface Builder (IB) 创建的故事板和 xib 文件链接到实现文件的方式。但是,在代码中创建具有布局的视图和控制器是完全允许的,甚至是团队项目管理的常见模式。
就我个人而言,我确实喜欢使用 Interface Builder 来布置我的视图的视觉方面,它有助于减少我的控制器文件的大小,因为它允许我将我的布局和颜色设置放入 Storyboard 和 xibs 中。但是,一些开发人员会争辩说这实际上是一个缺点,因为它混淆了控制器的某些功能,使初学者无法理解。在团队工作时避免使用 Interface Builder 的理由很充分,但归根结底是策略和偏好。
【讨论】:
【参考方案2】:它们只是 Xcode 用来链接代码和故事板/XIB 的标签。从功能上讲,它们什么都不做。它们可以帮助您作为开发人员了解什么是/不是/可以/不能在您的 UI 的视觉表示和驱动它的代码之间建立联系。
【讨论】:
以上是关于快速,为啥我必须使用 IBaction 或 IBOutlet 在代码和 UI 之间进行通信?的主要内容,如果未能解决你的问题,请参考以下文章