在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
时,我无法看到如何更新Y的avar
如何在状态恢复期间将一个View Controller的成员变量设置为另一个?
解决方案的一个途径是在恢复期间设置标志:
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 View Controller的引用?我在Storyboard中为它指定了一个标识符,但找不到任何可以查找现有Y视图控制器的API。