ios - 如何使现有类成员成为协议(protocol)实现?

标签 ios swift inheritance swift-protocols

我的问题很简单。我有一个类来管理我所有的 viewcontroller 到 viewcontroller 的转换动画,它从协议(protocol)中获取类,因为我想让它可移植,而且我通常用项目特定的东西制作一个 baseviewcontroller。

协议(protocol)是这样的:

protocol AnimatedViewController {
    var view: UIView { get set }
    func animateViews()
}

但是当我让 UIViewController 继承自它时,我得到了 view 未定义的错误。当我定义它时,它告诉我它已经定义了。

如何在我的协议(protocol)中定义view,并使其成为已经在UIViewController中定义的view

PS:不知道怎么命名标题,欢迎修改。

最佳答案

您可以在协议(protocol)中使用 where 子句,并且不需要 view 属性。

protocol AnimatedViewController where Self:UIViewController {
    func animateViews()
}

class TVC : UIViewController, AnimatedViewController {
    func animateViews() {

    }
}

关于ios - 如何使现有类成员成为协议(protocol)实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49401853/

相关文章:

使用 GPS 的 iOS 在图像上显示蓝点?

ios - 如何重新创建 persistentStore 不受更改 .xcdatamodeld 的影响

ios - OpenCV 2.4.3 (iOS) 中的 Crop Mat 图像

javascript - 理解javascript继承

java - 理解 super 的概念吗?

ios - 如何将适用于 iOS 的 Admob 横幅放在底部中心?

arrays - 如果单元素解码失败,Swift JSONDecode 解码数组将失败

ios - 快速更改另一个类的变量值

ios - UITableViewCell 从 1 计数到 50

swift - 从 NSObject 继承的对象导致错误 Property 'self._username' not initialized at super.init call