AppStoreの左上のカテゴリボタンを押すとTableViewが表示され、インジケーターが表示されているセルをタップし、次に表示された子のTableViewのセルをタップしてそのカテゴリの内容が画面に表示された後に再び画面左上のカテゴリボタンを押すと、選択中のカテゴリにチェックが入った状態でTableViewがモーダル表示されると思うのですが、この動きはUIStateRestorationを使って実現されてますよね...?そう思うのはカテゴリを押すと左上に戻るボタンが表示された状態でTableViewが出てきて、その戻るボタンを押すとトップのTableViewに画面がポップするからです。このような動作を実装したいと思っており、現在UIStateRestorationについて調べているのですが、分からないことがいくつかあります。
色々なサイトを参考にしているのですが、それぞれ書いていることがバラバラでどのように実装すればいいか分かりません。以下が現在主に参考にしているサイトです。
http://ninjinkun.hatenablog.com/entry/2012/10/20/122257
http://www.slideshare.net/yukiomurakami/ss-25988325
復元したい各StoryboardにRestoration IDを設定し、AppDelegateのshouldSaveApplicationStateとshouldRestoreApplicationStateの戻り値でYESを返すように設定しました。ここまでは多分いいのだと思うのですが、ここから先がイマイチわからないです。
encodeRestorableStateWithCoderとdecodeRestorableStateWithCoderはどのタイミングで呼ばれるのでしょうか?試してみたのですが、アプリが起動、終了した時には呼ばれませんでした。(単に実装方法が間違っているだけかも知れませんが...)あと、例えばボタンが押されたタイミングなどにコードで上の二つのメソッドは呼ぶことができるのでしょうか?
また、viewControllerWithRestorationIdentifierPathはどのタイミングでどのように使えばいいでしょうか?復元先のViewControllerのViewDidLoadで使えばいいでしょうか?
参考にしたサイトの一つに「状態の保存と復元は多くのパターンがある」とも書かれており、今回実現したい内容をどのように実装していけばいいか迷っています。
どなたか分かる方がいれば教えていただきたいです。
すみませんが、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/19 01:29