如何在iOS上调用Rootviewcontroller

时间:2012-11-05 01:07:41

标签: iphone objective-c ios xcode cocoa-touch

在我的iOS应用程序中启动即时检查用户是注册用户还是新用户(如facebook& skype), 比如果用户没有注册我正在使用我的应用代表导航应用程序注册屏幕:

    if (user != register){

        RegisterViewController *registerViewController = [[RegisterViewController alloc] init];
                RearViewController *rearViewController = [[RearViewController alloc] init];

        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:registerViewController];

        self.viewController = revealController;

        self.window.rootViewController = self.viewController;

        self.window makeKeyAndVisible];
    }else {

FrontViewController *frontViewController = [[FrontViewController alloc] init];
            RearViewController *rearViewController = [[RearViewController alloc] init];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];

RevealController *revealController = [[RevealController alloc] initWithFrontViewController:navigationController rearViewController:rearViewController];

self.viewController = revealController;

self.window.rootViewController = self.viewController;

[self.window makeKeyAndVisible];

}

这样,如果用户没有注册,我现在将注册屏幕作为主窗口,

我的问题是:在用户完成注册后,我将两个导航控制器放在我的屏幕上

我正在使用:

[[self navigationController] pushViewController:revealController animated:YES];

将应用程序导航到我的主viewController,因为用户现已注册,

如何解决这个问题,是否还有其他方法可以修复注册用户问题

1 个答案:

答案 0 :(得分:4)

当你需要另一个根视图控制器时,为什么不设置它而不是推送到另一个navController堆栈:

[[UIApplication sharedApplication] keyWindow].rootViewController = revealController;