如何使 xib 子视图与 Swift 中的超级视图交互?
Posted
技术标签:
【中文标题】如何使 xib 子视图与 Swift 中的超级视图交互?【英文标题】:How to make a xib subview interact with superview in Swift? 【发布时间】:2014-11-16 00:18:56 【问题描述】:我已经尝试了好几天了...
我想要一个带有一些按钮和其他东西的 nib 子视图。主视图将具有其他子视图,这些子视图会响应按下 nib 视图的按钮而发生变化。
我能做什么: 我已经使用 this approach 将 xib 子视图加载到超级视图中。
问题: 我无法让 xib 上的按钮与其他子视图交互(例如更改标签的文本)
我还没有弄清楚如何构建文件及其关系。
【问题讨论】:
【参考方案1】:您可以在加载 nib 后使用 addTarget:action:forControlEvents: 为按钮添加操作方法;目标应该是 self(您添加此视图的控制器)。视图应该具有用于您需要与之交互的任何按钮或其他控件的 IBOutlets。如果您使用这种方法,您不应该对子视图类中的按钮进行任何操作。
另一种方法是在子视图类中设置按钮的操作方法,并让这些方法调用您在子视图类中创建的委托协议的方法。当您将子视图添加到您的视图时,您可以将控制器设置为子视图的委托,并实现您定义的任何协议方法。
【讨论】:
谢谢。生病尝试 addTarget 方法。我已经尝试过使用委托,但它没有用。它构建正确,但突然停止,控制台显示Could not load NIB in bundle: 'NSBundle </Users ... NibWithOutletsSet.app> (loaded)' with name 'ProfileView''
以上是关于如何使 xib 子视图与 Swift 中的超级视图交互?的主要内容,如果未能解决你的问题,请参考以下文章