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

时间:2017-09-09 22:25:16

标签: ios swift xcode uiviewcontroller xib

我为我的iOS应用程序创建了一个重复的视图的.xib文件,其中有一个UIButton。

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

知道上述是否可行?

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

所以这是我到目前为止提出的最佳解决方案。

  1. 在我的.xib中,我将按钮链接到一个空的@IBAction。
  2. 再次在我的.xib中,我用一个方法创建了一个协议,我将在步骤(1)中创建的@IBAction中调用。
  3. @IBAction将在每次调用时运行协议方法,因此每次单击该按钮时都会这样。
  4. 在每个需要处理@IBAction的ViewController中实现协议存根,并确保使用步骤(2)中创建的协议将该ViewController链接到.xib。

答案 2 :(得分:0)

在您的ViewController中包含xib视图,只需对xib视图内的按钮分配一个操作

>>> def test():
    try:
        if x['error']:raise
    except Exception as err:
        return err

>>> test()
NameError("name 'x' is not defined",)