我的应用程序构建于UINavigationViewController
,当我的应用程序将转移到当前UIViewController
之上的其他UIViewController
时。在调到下一个prepare(for:sender)
之前,将调用UIViewController
的方法。
我想知道何时实施覆盖prepare(for:sender)
,例如:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toNextVC", let vc = segue.destination as? NextViewController {
vc.session = self.session // session is class.
}
}
所以,在NextViewController
中,如果session
是类的变量,那么,如果我需要在unowned
中为session
标记NextViewController
?< / p>
可以删除nextViewController
并返回前一个视图控制器。
答案 0 :(得分:0)
NextViewController
可拥有session
变量(从而增加其ARC)。当您弹出控制器(从中返回)时,它将被取消分配,并且将自动删除对session
的引用,从而减少其ARC。
如果session
变量将获得对NextViewController
的引用,则可能会出现潜在问题,从而创建保留周期。然后NextViewController
不会被解除分配(因为它的ARC> 0),这将阻止session
的ARC减少。您必须使用unowned
或weak