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
}
しかし、復元中に、YdecodeObjectForKey()
myvar
の を更新する方法がわかりません。avar
状態の復元中に、あるビュー コントローラーのメンバー変数を別のビュー コントローラーから設定するにはどうすればよいですか?
解決策の 1 つの方法は、復元中にフラグを設定することです。
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 が見つかりません。