0

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 が見つかりません。

4

0 に答える 0