事情正在发挥作用,但我正在努力改进他们的工作方式;)
这是我的情景:
我有一个自定义按钮,而tap事件正在触发ViewController中的自定义功能。这是通过代表发生的,一切正常。
我正在使用故事板和控件+单击来创建自定义按钮的插座,然后在ViewController类中设置委托,如:
@IBOutlet weak var myButtonInstance: MyButton!
override func viewDidLoad() {
super.viewDidLoad()
myButtonInstance.delegate = self
}
我的问题:
有没有办法从自定义按钮类中设置此委派?我在Swift中看到,没有self.parent,这就是我一直在寻找的东西:
(伪代码)
on custom button initialization:
self.delegate = self.parent
答案 0 :(得分:2)
如果我理解正确,您希望从按钮内部获取对控制器的引用,以将其设置为委托!?
您的UIButton
是视图层次结构的一部分 - 但您的ViewController却不是。没有更多不应该是应用程序的View部分元素访问其Controller部分的简单方法。它应该只通过所述代表与Controller通信。其他任何东西都会与MVC设计模式发生冲突。
在合乎逻辑的术语中,虽然将其他人指定为您的代表是没有意义的。始终应该是通过将自己指定为委托来启动委派过程的委托。