Swift - 两个不同 类 的相同协议
Swift - Same protocol for two different classes
我想对两个不同的 class 使用相同的协议。它用于两个 UIStoryboardSegue
classes,正常的和展开的 segue。在我的第一个 class GameSegue.swift
中,我已经声明了这个协议
@objc protocol ViewControllerWithBackgroundImage {
var backgroundImage: UIImageView { set get }
}
我使用此协议访问 ViewControllers 属性 backgroundImage
。在第一个 class GameSegue.swift
中,正常的 segue,backgroundImage
动画 10 px
起来。所以在第二个 class GameSegueUnwind.swift
中,我想向后做同样的事情,将背景 10 px
向下移动。但是要访问 backgroundImage
属性 我需要这个协议。因此,不声明另一个协议,而是使用相同的协议会很有用。
知道这怎么可能吗?
在第二个 class 中声明一个新的委托变量
class GameSegueUnwind {
var secondDelegate: ViewControllerWithBackgroundImage?
}
并且您将能够在任何其他符合协议的 class 中访问该功能。当然,在 conforming class 中记得在 prepare for segue 方法中声明它有委托处理程序
destinatonViewController.secondDelegate = self
我想对两个不同的 class 使用相同的协议。它用于两个 UIStoryboardSegue
classes,正常的和展开的 segue。在我的第一个 class GameSegue.swift
中,我已经声明了这个协议
@objc protocol ViewControllerWithBackgroundImage {
var backgroundImage: UIImageView { set get }
}
我使用此协议访问 ViewControllers 属性 backgroundImage
。在第一个 class GameSegue.swift
中,正常的 segue,backgroundImage
动画 10 px
起来。所以在第二个 class GameSegueUnwind.swift
中,我想向后做同样的事情,将背景 10 px
向下移动。但是要访问 backgroundImage
属性 我需要这个协议。因此,不声明另一个协议,而是使用相同的协议会很有用。
知道这怎么可能吗?
在第二个 class 中声明一个新的委托变量
class GameSegueUnwind {
var secondDelegate: ViewControllerWithBackgroundImage?
}
并且您将能够在任何其他符合协议的 class 中访问该功能。当然,在 conforming class 中记得在 prepare for segue 方法中声明它有委托处理程序
destinatonViewController.secondDelegate = self