以编程方式加载新的ViewController

时间:2014-05-18 10:56:01

标签: ios segue

用户打开应用程序并显示LoginViewController,一旦他们输入详细信息并按下登录按钮,就会生成NSURLRequest,如果结果成功,则应用程序需要加载HomeViewController。

除了加载HomeViewController外,一切正常。

我尝试过实例化HomeViewController和:

[self presentViewController:Home animated:YES completion:NULL]

但是它没有加载新的控制器,我不确定是否需要segue或执行我不知道的其他类型的模态请求。

2 个答案:

答案 0 :(得分:1)

我认为HomeHomeViewController的类? 当名称was HomeViewController时,它将更像是可可风格。

self.homeViewController = [[Home alloc]init];

通过这样做,您将不得不关心创建和布局控制器控制的所有视图。如果您使用Interface Builder执行此操作,请使用

self.homeViewController = [[Home alloc] initWithXib:@"NameOfTheNibFileHere"]];

如果您的视图控制器已放置在故事板中,请为其提供ID" HomeID"在这个例子中)在故事板中并加载它。

self.homeViewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeID"];

如果它是故事板的根视图控制器,那么我建议使用

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

从那里开始。

答案 1 :(得分:0)

您可以使用segue执行此操作,但不希望从登录按钮触发segue - 您需要以编程方式执行此操作。在Image Builder中,转到登录视图的底部并按住Control键并单击黑色栏中的黄色View Controller图标,然后拖动到HomeViewController。选择“替换”作为segue类型,然后按照惯例给segue一个标识符(比如“HomeSegue”)。

现在,一旦您的登录完成,您可以使用

触发segue
[self performSegueWithIdentifier:@"HomeSegue" sender:self];

如果登录失败,那么您可以留在登录视图控制器上并根据需要显示错误