【问题标题】:How to push UIViewController from AppDelgate如何从 AppDelgate 推送 UIViewController
【发布时间】:2015-06-28 12:11:50
【问题描述】:

我正在构建一个 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];

【问题讨论】:

    标签: ios objective-c uiviewcontroller appdelegate


    【解决方案1】:

    您需要通过 AppDelegate 设置初始视图控制器。检查您的演示条款并将目标视图控制器添加为窗口根视图控制器。

    - (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];
    

    【讨论】:

      猜你喜欢
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多