我现在正在做一些练习。例如,我在storybard中创建了两个视图控制器,我想通过单击按钮来改变VC1中VC2的颜色。在这种情况下委托是需要还是其他方式来做?
答案 0 :(得分:0)
通常,是的。但这取决于。您可以使用NotificationCenter,您可以使用“准备”功能。代表是这里最常见的选择。在你的情况下:
protocol ChangeButtonColorDelegate {
func changeButtonColor()
}
class VC1 : ChangeButtonColorDelegate... {
func changeButtonColor() {
/* change button color here */
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "goto_vc2") {
(segue.dest as! VC2).delegate = self
}
}
}
class VC2 : ... {
var delegate : ChangeButtonColorDelegate!
}