我的问题很简单。我有一个类来管理我的viewcontroller到viewcontroller过渡动画,它从一个协议中获取类,因为我想让它可移植,我通常会创建一个带有项目特定内容的baseviewcontroller。
协议是这样的:
protocol AnimatedViewController {
var view: UIView { get set }
func animateViews()
}
但是当我让UIViewController
继承此内容时,我会收到view
未定义的错误。当我定义它时,它告诉我它已经定义了。
如何在我的协议中定义view
并将其view
定义为UIViewController
?
PS:不知道如何命名标题,欢迎编辑。
答案 0 :(得分:3)
您可以在协议中使用where子句,但不需要class MyController: UIViewController, AnimatedViewController {
func animateViews() {
// do your stuff
}
}
属性。
view
答案 1 :(得分:1)
view
中的{p> UIViewController
是一个展开UIView
的力量,所以只需将协议定义为:
protocol AnimatedViewController {
var view: UIView! { get set }
func animateViews()
}
来自view
的{{1}}将用于满足此协议的要求。
E.g:
UIViewController