Как установить переменную 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.