2009-06-10 16 views
1

私のアプリケーションは、各アクティブなタブ内の個々のビューごとにUINavigationControllerが埋め込まれたUITabBarControllerによって駆動されます。条件付きアプリケーションの起動ビュー

初めてアプリを起動したときに、表示されているTabBarのない別の設定ビューを提示したいと思います。ユーザーが設定を完了すると、TabBarを使用してメインビューに移動します。また、一度設定すると、ユーザーが設定を変更できる別の設定セクションがありますが、アプリ内から初期設定ビューに再度アクセスすることはできません。

これを行うには良いパターンはありますか?

答えて

1

設定が完了したら、NSUserDefaults内に設定完了変数を作成する必要があります。この変数が設定されていない場合は、最初の実行であることがわかります。

AppDelegateで、UINavigationControllerをインスタンス化する前に、設定変数を確認してください。表示されていない場合は、ユーザーを設定ビューに移動します。完了すると、表示設定を削除し、通常のコードを再開:

BOOL settingsDone = [[NSUserDefaults standardUserDefaults] boolForKey:@"settingsComplete"]; 

if (settingsDone){ 
    SettingsView *mySettingsView = [[SettingsView alloc] init]; 
    [self.window addSubView:mySettingsView.view]; 
} 

//Set up navigationcontroller here 

-(void)settingsDone{ 
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"settingsComplete"]; 
    for (UIView *view in self.window.subviews){ 
     [view removeFromSuperView]; 
    } 
} 

だけsettingsDone方法までを表示あなたの設定で行われ、ボタンをフック。

1

ユーザーが変更できない構成設定を作成します。それを "FirstRun"と呼んでください。デフォルトでtrueに設定します。ユーザーが最初に設定を行った場合は、falseに設定します。

スタートアップコードで設定を確認し、trueの場合は初期設定ページを表示します。

+0

設定をするのは簡単ですが、特定のコントローラ/アプリケーションロジックを設定する方法をもっと探しています。他のビューと同じように –

+0

FirstRunが設定されていない場合(AppDidLaunch内)、同じ場所からペン先をロードすると、プログラムで作成することができます。 –