将@IBAction链接到ViewController的.xib视图中的按钮

问题描述:

我已经创建了一个.xib文件,该文件将在iOS应用程序中重复出现,其中有一个UIButton。将@IBAction链接到ViewController的.xib视图中的按钮

我在故事板中的多个UIViewControllers中包含.xib视图。我想将@IBAction和@IBOutlet链接到特定于每个UIViewController的.xib视图中的按钮。换句话说,我希望每个UIViewController都能完全管理和处理.xib视图中的UIButton。

任何想法,如果上述是可行的?

有几种方法可以做你想做的事。

我会这样做的方式是给你的自定义视图一个闭包,当IBAction方法被触发时运行。并且从xib加载视图的每个视图控制器都可以将闭包传递给视图,并且在按钮被单击时该动作将运行。

+0

谢谢您的回答Abizern !您能否详细说明一下,或者给出一个支持您解决方案的例子? –

所以这是迄今为止我提出的最佳解决方案。

  1. 在我的.xib中,我将按钮链接到一个空的@IBAction。
  2. 再次我的.xib内,我创建具有单个方法的协议,我将在步骤中创建的内部@IBAction调用(1.)
  3. 的@IBAction将在每次被调用时运行该协议的方法,所以每次按钮被点击。
  4. 落实在每一个视图控制器的协议存根需要处理@IBAction,并确保使用步骤创建协议到ViewController中链接到的.xib(2)