2012-03-14 9 views
0

私はストーリーボードを使ってiPhone(iOS 5+)アプリを開発しています。アプリの最初の画面は、Facebookの資格情報をチェックし、利用規約を読んで受け入れるスプラッシュ/ログイン画面です。有効なストアドクレデンシャルがあり、TOCが以前に受け入れられている場合、このビューは3つのタブを持つタブバーコントローラである最初の「実際の」アプリケーションビューにモーダルセグを自動的に作成します(クロスディゾルブエフェクトを使用)。iOS:アプリがフォアグラウンドに戻ったときに以前に表示されたビューを復元しますか?

現在、バックグラウンドロジックとフォアグランドロジックを実装しています。問題は、ホームボタンを押した後に戻ったときに、適切なバックグラウンド前のビューが復元される前にログイン画面が短時間表示されることです。 (アプリのDefault.pngはログイン画面のバックグラウンドであるため、実際のログイン画面のバックグラウンドタイムスクリーンショットである可能性がありますが、まだ違いを伝えるためにDefault.pngのテストは行っていません)

これはなぜですか?私が知る限り、アプリケーションをバックグラウンドにするには、たとえばホームボタンを押して画面に表示されるビューのスクリーンショットを撮り、フォアグラウンドに戻ったときに実際のビュー機能を復元する前に復元するだけです。この場合、それはタブバーコントローラのタブの1つになります。ログイン画面とタブバーコントローラーの間のモーダルセグがこの問題の原因か他に何かありますか?

(私はいつも、ログイン画面のモーダルセグを最初の「便利な」画面にクロスディゾルブするのがちょっと汚いと感じました.IMHOのモーダルセグはあなたのセグエイア私が今やっているのは、モーダルセグのターゲットを無期限に見えるようにすることです。もしこれが問題であれば、誰かがより良い方法を提案するなら、それを愛するでしょう。 )ログイン画面を表示したり、移行したり、「投げ捨てる」ことができます。

答えて

1

これは、Default.pngに関するシミュレータとデバイスの矛盾です。別の質問でThis commentをチェックすると思いました。バグ報告を提出する時間。

0

Appleには、ナビゲーションコントローラがバックグラウンドに入る前にどのビューが表示されていたかを「記憶」している古いデモコードがあります。

私はストーリーボードで作業していませんので、あなたがしようとしていることの詳細は分かりません。

私の場合は、起動時にビューコントローラを作成し、アプリケーションデリゲートのロジックが必要と判断した場合にのみログイン画面を追加します。それだけで、ビュー階層を設定した後、すべてを提示します。

これは2つのことを実行します。私のログイン画面は存在し、必要に応じて表示されます。また、ログイン画面は特に表示されません。ああ、3つ目のメリットとして、あなたが好きなビューを提示することができます。

前述のデモコードがうまくいかないとすれば、NSUserDefaultsに現在表示されているビューの参照、タグ、IDなどを保存しておきたい場合は、起動時にビュー階層を上げる。

関連する問題