当我想在另一个VC中改变某些东西时,我是否必须使用委托?迅速

时间:2017-07-03 19:22:46

标签: ios swift xcode

我现在正在做一些练习。例如,我在storybard中创建了两个视图控制器,我想通过单击按钮来改变VC1中VC2的颜色。在这种情况下委托是需要还是其他方式来做?

1 个答案:

答案 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!
}