将触发的动作绑定到没有子类化的函数

时间:2016-06-27 22:36:41

标签: ios swift uiviewcontroller

出于分析目的,我想执行以下操作:

  • 触发UIVIewController viewDidLoad()时,我想触发自定义函数vcWasLoaded(vc:UIViewController)
  • 同样,当点按UIButton时,我想触发自定义函数btnWasTapped(bt:UIButton)

我想在没有子类的情况下实现上述目标。无论如何使用协议,扩展或反应框架实现上述目标?

1 个答案:

答案 0 :(得分:1)

方法调配是我唯一可以想到的,你可以使用它可以让你在没有子类化的情况下做到这一点。您将替换viewDidLoad的实现,以及其中一个较低级别的按钮方法,然后在您的实现中调用原始实现。 (我只涉及方法调整,而且很多年前,在Swift存在之前。我不太了解Objective-C方法的混合,并且确切地知道方法在Swift中徘徊。)

如果您创建了UIViewController的子类并使其成为所有视图控制器的基类,那么这将更加简单和清晰。