如果,启动时自动切换视图

时间:2011-12-03 14:00:00

标签: iphone ios xcode

现在我有一个应用程序,用户在打开应用程序时看到的第一个屏幕是登录视图。

但我只希望用户看到该视图,如果这是他们第一次尝试登录。

因此,如果某个nsuserdefault字段为空,我希望显示一个视图,如果不是,则显示Login View。

我该怎么做?

我试图在loginview.m的viewdidload中插入一个if子句,但显然不可能从viewdidload自动切换到另一个视图?

1 个答案:

答案 0 :(得分: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; }

以上示例应该向您展示这个想法。它使用导航控制器,但可以在没有导航控制器的情况下完成相同的操作 - 通过模态提供登录控制器。