如何从AppDelgate

时间:2015-06-28 12:11:50

标签: ios objective-c uiviewcontroller appdelegate

我正在构建一个iOS应用程序,其中有4个屏幕 - 验证电话号码,fb登录,设置您的个人资料和家庭。 现在我需要的是,如果用户已经设置了她的个人资料信息,并且在他关闭应用程序之后点击下一个。在重新启动应用程序时,它应该直接导航到主屏幕,并且不应该再次重复所有3个屏幕。

发生的情况是,屏幕1(验证电话号码)会在短时间内显示,然后会出现主屏幕。我想在重新打开应用程序后立即在启动画面后出现主屏幕。

我正在使用以下代码。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UINavigationController *mvc = [storyboard instantiateViewControllerWithIdentifier:@"Home"];
    [self.window.rootViewController presentViewController:mvc animated:YES completion:nil];

1 个答案:

答案 0 :(得分:0)

您需要通过AppDelegate设置初始视图控制器。检查您的presentation子句并将目标视图控制器添加为window rootviewcontroller。

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

UINavigationController *navigationController;
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];

if (YOUR_HOME_VIEW_PRESENTATION_LOGIC)
{
    navigationController = [storyboard instantiateViewControllerWithIdentifier:@"Home"];
}
else
{
   // init with your phone view
    navigationController = [storyboard instantiateViewControllerWithIdentifier:@"YOUR_PHONE_VIEW_IDENTIFIER"];
}

self.window.rootViewController = navigationController;

}

此外,您可以尝试在没有动画的情况下呈现您的控制器 - 泰斯技巧将删除不需要的动画

 [self.window.rootViewController presentViewController:mvc animated:NO completion:nil];