1

アプリの初回実行時にウィザードを使用するアプリケーションを作成しています。その後、UITabBarController を提示する必要があります。

ユーザーがアプリを 2 回目に実行すると、UITabBarController が表示されます。

UITabBarController は rootViewController である必要があるため、アプリの rootViewController を再定義して、ウィザードが終了したときに TabBarController が表示されるようにする方法はありますか??

または、その動作を達成するためのより良い方法はありますか?

ありがとう!!

4

2 に答える 2

1

はい、現在表示されている任意のコントローラーからウィンドウのルート ビュー コントローラーを再定義できます。self.view.window でウィンドウへの参照を取得します。したがって、ウィザードが終了したら、タブ バー コントローラーをインスタンス化し、ルートを変更するだけです。

UITabBarController *tbc = [self.storyboard instantiateViewControllerWithIdentifier:@"tbc"]; // or other instantiation method if not using a storyboard
self.view.window.rootViewController = tbc;

アプリ デリゲートで、これがアプリの最初の実行かどうかを判断するロジックを配置し、そうでない場合は、このわずかに変更されたコードを実行して、タブ バー コントローラーを直接起動します。

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tbc = [sb instantiateViewControllerWithIdentifier:@"tbc"]; // or other instantiation method if not using a storyboard
self.window.rootViewController = tbc;
于 2013-06-06T15:49:57.570 に答える
1

アンワインド セグエを使用します。アプリケーションを提示するときUITabBarControllerは、ナビゲーション スタックにプッシュします。これがアプリの最初の実行である場合は、タブ バー コントローラーを押すときにアニメーションを無効にし、ウィザードの最初の画面をその上に押します。初回起動でない場合はタブバーコントローラーをアニメーションで押します。

ユーザーがウィザードを完了したら、アンワインド セグエを使用してタブ バー コントローラーに戻ります。

于 2013-06-06T15:22:59.590 に答える