0

久しぶりに苦労していたので、やっと答えを探すのを諦め、すぐに聞いてみることにしました。

私のアプリには、ユーザーログインページがあります。アプリには、アイテムにいくつかのNavigationControllerがあるTabBarViewControllerがあります。

私の最後の努力は、下の図のように、ログイン画面をNavigationBarControllerに埋め込み、それをInitialViewControllerにすることでした。

ここに画像の説明を入力してください

アプリの起動時に、ユーザーがLogInViewControllerにログインしている場合は、TabBarControllerに「セグエ」し、すべてが正常です。ユーザーがProfileViewControllerでログアウトすると、このViewControllerに最初のViewControllerへの「セグエ」のセグエがあります。

一方、ユーザーがログインしていない場合、LogInViewControllerはビューを表示して、ユーザーがユーザー名とパスワードを挿入できるようにします。クレデンシャルが正しい場合、LogInViewControllerはTabBarControllerに「セグエ」します。問題は、この時点で、アプリがまだ正常に機能している場合でも、次の警告が表示されることです。

警告:プレゼンテーションの進行中に、UINavigationController:0xa526370でTabBarViewController:0xa19a670を表示しようとしました。

したがって、これはこのすべてのログイン/ログアウトプロセスを処理するための最良の方法ではないと思います。

私の質問は、LogInScreenを階層のどこに配置する必要があるかということです。万が一、私のレイアウト/階層が正しい場合、警告を消すにはどうすればよいですか?

4

1 に答える 1

1

ホーム画面を自分のものとして作成rootViewControllerし、アプリケーションが起動またはアクティブになったら、ユーザーがログインしているかどうかを確認できます。ログインしていない場合は、LoginScreenをモーダルに表示すると、他のユーザーとの混乱を回避できますNavigationControllerTabBarController

別の方法として、すべてをに入れてViewControllers、表示したいビューMutbaleArrayに応じて現在のインデックスを設定することもできますか?TabBarControllerユーザーがログインした後にLoginScreenを表示したくない場合は、LoginScreenを削除して、ここMutableArrayで私の答えを確認してください。これが原因となる可能性があります。

于 2013-02-27T14:58:29.407 に答える