在 View Controller X 中,我使用 prepareForSegue() 来设置 View Controller Y 的变量。
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject) {
if (segue.identifier == "mySegue") {
let vc = segue.destinationViewController as! MyTabBarController
vc.avar = myvar
}
但是在恢复过程中,当我decodeObjectForKey()
myvar
看不到如何更新avar
Y
如何在状态恢复期间从另一个视图控制器设置一个视图控制器的成员变量?
解决方案的一个途径是在恢复期间设置一个标志:
override func decodeRestorableStateWithCoder(coder: NSCoder) {
isRestoration = true
super.decodeRestorableStateWithCoder(coder)
}
然后在课堂上:
if isRestoration:
// find Y View Controller which has been auto created by iOS
// set Y.avar
在这种方法中,我将如何获得对 Y 视图控制器的引用?我在 Storyboard 中给了它一个标识符,但找不到任何可以查找现有 Y 视图控制器的 API。