2011-05-19 32 views
1

私はiPhoneアプリを持っており、ユーザーがボタンを押したときに、選択された操作には1〜2分かかります。ユーザーに待つように指示するメッセージを表示したいが、その間にユーザーがアプリケーションを使用するのをブロックしない。また、私はメッセージの上にカスタマイズ可能なテキストを希望します。IPhoneで非モーダルの「読み込み中」メッセージを表示する最良の方法は何ですか?

もう1つの要件は、TabBarControllerをメインナビゲーションコントロールとして使用することです。

私の考えは、画面の上部にメッセージを表示し、コンテンツを20ピクセル下に押し込むことです。複数のスクリーンがあるので、この20ピクセルのメッセージは、どの単一のスクリーンからも独立していなければならないことに注意してください。

私はいくつかの方法を試しましたが、それぞれ欠点があります。

1 - ルートビューがあり、TabBarControllerでAddSubViewを呼び出します。次に、TabBarControllerのサイズを変更し、その下のルートビューにメッセージを表示することができます。これは、TabBarController子ビューが "ViewDidAppear"メッセージを受け取らないために失敗します。面白いことに、後でモーダルウィンドウを表示すると、 "ViewDidAppear"メッセージが機能し始めます。しかし、私はViewDidAppearを最初にしたいと思います。

2 - #1と同様です。ルートビューを持ち、TabBarControllerをモーダルビューとして表示します。これにより、ViewDidAppearは動作しますが、画面が回転している場合、回転メッセージはルートビューに伝播しません。だから私はルートビューを回転することはできません。

3 - 回転を適切に処理するためのサブクラスTabBarController。アップルのドキュメントはこれをしないと言っているので、私はそれを動作させることができれば、私のアプリケーションが拒否されることを心配しています。

4 - メインウィンドウに2つのビューを追加します。メッセージを表示するためのものと、アプリコンテンツのためのもの。これはオプション#2と同じ回転問題があります。

ご迷惑をおかけして申し訳ございません。おかげさまで

+1

ケース#2の場合:ルートVCからTabBarControllerへの通知を手動で渡します。 – TheBlack

+1

関連のタブボタンに「12%」と表示されている「バッジ」と思われますか? –

+0

@ TheBlack - ありがとう、それを試してみましょう。 – jriggs

答えて

1

これはあなたの質問に対する正確な答えではありませんが、ステータスバーの上にメッセージを使用することもできます。 Reederはそれを使用しています。私はそれを邪魔にならないフィードバックの非常に興味深い、そして良い例と見なします(それはまたあなたにいくつかのピクセルを保存します:)。それを簡単にしたい場合は、this libraryを見てください(警告を必ず読んでください)。 コメントにKris Van Baelによって提案された2番目のオプションは、Instagramのようなカスタムビューを追加することです。再び、this articleに詳細情報があります。 私はそれが助けてくれることを願っています!

+0

私はこれらのアイデアを使用するかどうかはわかりませんが、私はそれらを確かに考えます。ありがとう。ステータスバーの警告がひどい。それは非常に良い解決策のように見えます。 – jriggs

+0

バッジはカスタムビューではありません。これはUITabItemのスタンダード機能です。 –

+0

ああ、私はリンクされた記事のこのオーバーレイビューのように、 "12"の後の "%"のために "カスタムバッジ"を意味すると思った。 – phi

関連する問題