2011-12-03 30 views
0

今、私は、ユーザーがアプリケーションを開いたときに最初に表示される画面がログインビューです。起動時にビューを自動的に切り替えます。

しかし、初めてログインしようとすると、ユーザーはそのビューを見たいだけです。

は、このように私は、特定のnsuserdefaultフィールドが空の場合は、1つのビューを表示させたい、とそうでない場合はログインビューが表示されるように。

どうすればいいですか?

私はloginview.mののviewDidLoadであれば句を挿入しようとしたが、どうやらそれはのviewDidLoadから自動的に別のビューに切り替えることはできませんか?

答えて

0

これはAppの代理人に実装する必要があります。これはメソッドで行う必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

ユーザーのデフォルトで保存された値をチェックし、適切なコントローラーを起動します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

    // Check user defaults here 

    BOOL shouldShowLogin = [[NSUserDefaults standardUserDefaults] boolForKey:@"ShowLogin"]; 

    MasterViewController *masterViewController = [[[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil] autorelease]; 

    self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease]; 


    if (shouldShowLogin) { 
     LoginViewController *loginViewController = [[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil] autorelease]; 

     [self.navigationController pushViewController:loginViewController animated:NO]; 
    } 

    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 
    return YES; } 

上記の例では、アイデアを示す必要があります。ナビゲーションコントローラーを使用しますが、ログインコントローラーをモーダルに提示することでナビゲーションコントローラーなしでも同じことができます。

関連する問題