Как установить переменную View Controller во время восстановления?

В 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

Как я могу установить переменную-член одного 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, но не могу найти API, который я мог бы найти в существующем контроллере представления Y.

0 ответов

Другие вопросы по тегам