Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS/xcode/objective-c:注册后如何实例化视图控制器_Ios_Objective C_Storyboard_Window - Fatal编程技术网

iOS/xcode/objective-c:注册后如何实例化视图控制器

iOS/xcode/objective-c:注册后如何实例化视图控制器,ios,objective-c,storyboard,window,Ios,Objective C,Storyboard,Window,成功注册后,我希望用户通过一个过程,提供照片等。下面的代码用于加载登录页面,但下面的代码不用于加载故事板“newuser”中的单独视图控制器 如果您有任何关于如何修复的建议,我们将不胜感激 - (void)presentNewUserInterface { UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiat

成功注册后,我希望用户通过一个过程,提供照片等。下面的代码用于加载登录页面,但下面的代码不用于加载故事板“newuser”中的单独视图控制器

如果您有任何关于如何修复的建议,我们将不胜感激

- (void)presentNewUserInterface
{
    UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"newuser"];
    UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
    self.window.rootViewController = navigation;     
}
两种变体:

  • 用下一个视图替换窗口.rootViewController 控制器。在AppDelegate类上执行此操作

  • 提供新的视图控制器 从当前根视图控制器。在“注册”视图中执行此操作 控制器

  • 缺少第一种方法是没有事务动画。因此,第二种方法更可取。

    而不是:

    - (void)presentNewUserInterface
    {
        UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"newuser"];
        UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
        self.window.rootViewController = navigation;     
    }
    
    尝试:


    您的示例中没有显示新的导航控制器。您尝试替换rootViewController有什么特别的原因吗?这是不必要的。我的示例足以显示用户注册过程中的下一个流程。

    不理解。这就是上面试图做的。。。self.window.rootViewController=导航,其中导航是嵌入“newuser”视图控制器的navcontroller。我还尝试删除nav并使用self.windowRootController=rootController,得到了相同的结果。我该怎么做?你得到了什么结果?不了解发生了什么问题。现有的登录屏幕只是停留在那里,viewcontroller newuser没有加载。您好,该代码适用于注册的下一步。但是,当我尝试使用相同的代码转到第三步时(即,我刚刚将情节提要id的名称更改为另一个VC),它加载了第三个VC,但没有任何按钮或任何东西处于活动状态。(这个VC也可以从应用程序的另一个部分访问,所以我知道它可以正常工作。)我是否必须修改它以启动第三个屏幕?如果不显示代码,很难判断问题出在哪里。如果您还没有,我建议用您的问题的一些示例代码创建另一个问题。
    - (void)presentNewUserInterface
    {
        UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"newuser"];
        UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
        [self presentViewController:navigation animated:YES completion:nil];    
    }