Swift - 两个不同类的相同协议

时间:2015-01-12 19:38:50

标签: ios swift protocols segue uistoryboardsegue

我想为两个不同的类使用相同的协议。它适用于两个UIStoryboardSegue类,正常类和展开segue。在我的第一堂课GameSegue.swift中,我已经宣布了这个协议

@objc protocol ViewControllerWithBackgroundImage {

    var backgroundImage: UIImageView { set get }

}

我使用此协议可以访问ViewControllers属性backgroundImage。在第一个班级GameSegue.swift中,正常的segue,backgroundImage动画10 px向上。所以在第二课GameSegueUnwind.swift中,我想向后做同样的事情,向下移动背景10 px。但是要访问backgroundImage属性,我需要这个协议。因此,不宣布另一个协议,而是使用相同的协议将是有用的。

知道这有可能吗?

1 个答案:

答案 0 :(得分:2)

在第二个类中,只声明一个新的委托变量

class GameSegueUnwind {
     var secondDelegate: ViewControllerWithBackgroundImage?
}

您将能够在符合协议的任何其他类中访问该函数。当然,在符合要求的类中,请记住声明它在准备segue方法中具有委托处理程序

destinatonViewController.secondDelegate = self