如何在恢复期间设置View Controller的变量?

时间:2015-10-01 15:51:01

标签: ios swift state-restoration

在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。

0 个答案:

没有答案