我正在测试视图控制器之间的一些自定义转换。像往常一样,我在prepareForSegue:
方法中设置了转换协议。一切都运作良好,直到我想知道我们是否可以在其他地方设置这个?我尝试创建一个视图控制器并以编程方式设置委托,但它不起作用。呈现的视图控制器仍使用默认转换。
let popup = JopUpViewController()
popup.transitioningDelegate = PopupTransition()
self.presentViewController(popup, animated: true, completion: nil)
我尝试创建一个类函数,在init
视图控制器之后,我设置了委托,但它也没有用。
class func create() -> JopUpViewController {
let popup = JopUpViewController()
popup.modalPresentationStyle = .OverCurrentContext
popup.transitioningDelegate = PopupTransition()
return popup
}
任何人都知道如何设置转换代理而不是prepareForSegue:
?
答案 0 :(得分:3)
您必须将委托作为属性,否则它将取消分配,并转为nil。
{{1}}
现在您可以在任何地方设置代理。