UIViewController
iOS 6 では、Apple はおよび関連するクラスに状態の復元を追加しました。これにより、アプリケーションは終了時に状態を保存し、ユーザーがアプリケーションを再開したときに状態を復元できます。
すべてが正常に機能しているように見えますが、パターンに収まりたくない奇妙なシナリオに到達しました。
2 つのビュー コントローラーがViewControllerOne
ありViewControllerTwo
、両方とも、正常に復元される任意の状態を格納しているとします。ViewControllerOne
次に、delegate
プロパティがあり、それがそのデリゲートであると想像してみましょうViewControllerTwo
(これは、モーダル ビュー コントローラーの一般的なパターンです)。この関係を回復する責任は誰にありますか? そして、それはどのように保存/復元されることになっていますか?
私の特定のケースでは、ストーリーボードは関係ありません。復元は、 restorationClass
プロパティを介してコードで行われます。私の最初の本能は、restoreClass でビュー コントローラーを作成しながら関係を復元しようとするrestorationClass
ことでしたが、他の既存のコントローラーがわからないため、そのような関係を完全に復元することはできません。
あるいは、delegate
関係を復元するはずのプロパティを宣言するのがView Controllerである場合、他のクラスで復元されたコントローラーインスタンスはどうなりますか?
要するに、これは十分に文書化されていないシナリオのようであり、誰かがそれに光を当ててくれることを望んでいました.