0

我是 iOS 5 的新手,并尝试使用新的故事板功能将我的应用程序编写为纯 iOS 5 应用程序。

我有一个开始屏幕(登录屏幕),所以我不想使用导航控制器,因为我不需要任何用户在成功登录后返回登录屏幕此外,我不需要导航栏,因为它会影响在主屏幕设计上。

因此,在检查登录用户名和密码后,我需要对登录屏幕进行手动搜索:

If(Login Successful)
     Navigate to the Home View Controller
else
     Display Error Message.

现在这甚至可能吗,还是我需要 2 个故事板?

4

3 回答 3

0
If(Login Successful){
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

      HomeViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];

      [self presentViewController:viewController animated:YES completion:nil];
}

问题可能重复

于 2013-05-08T12:47:12.213 回答
0

您可以通过手动转场来实现这一点。在情节提要中,从登录屏幕视图控制器拖动到主视图控制器(确保在情节提要中缩小,以便您实际选择视图控制器而不是其中的子视图),然后选择“模态”作为segue 的类型。然后选择 segue 本身并在属性检查器中给它一个标识符,例如“loginSuccessful”。然后你可以写:

If(Login Successful)
    [self performSegueWithIdentifier:@"loginSuccessful" sender:self];

这将呈现故事板中 segue 指向的视图控制器。如果您需要在显示之前对主屏幕进行额外设置,您可以在 prepareForSegue 方法中进行,如下所示:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if(segue.identifier isEqualToString:@"loginSuccessful"){
        HomeViewController* target =(HomeViewController *) segue.destinationViewController;
        Target Setup;
    }
}
于 2013-05-08T13:10:51.920 回答
0

由于在场景中嵌入导航控制器后使用导航控制器

If(Login Successful){
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
      HomeViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
    [self.navigationController pushViewController:HomeViewController animated:YES];
}
于 2013-05-08T12:53:58.067 回答