使用Storyboard登录屏幕

时间:2013-05-08 12:44:04

标签: iphone ios objective-c uiviewcontroller storyboard

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

我有一个开始屏幕(登录屏幕)所以我不想使用navigationcontroller,因为我不需要任何用户在登录成功之后返回登录屏幕而且我不需要导航栏因为它对主屏设计有影响。

因此,在检查登录用户名和密码后,我需要在登录界面进行手动删除:

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

现在这是可能的,还是我需要2个故事板呢?

3 个答案:

答案 0 :(得分:0)

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

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

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

Question

可能重复

答案 1 :(得分:0)

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

If(Login Successful){
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
      HomeViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
    [self.navigationController pushViewController:HomeViewController animated:YES];
}

答案 2 :(得分:0)

您可以通过手动segue实现此目的。在故事板控件中 - 从登录屏幕视图控制器拖动到主视图控制器(确保在故事板中缩小,以便实际选择视图控制器而不是其中的子视图),并选择“模态”为segue的类型。然后选择segue本身并在Attributes检查器中为其指定一个标识符,例如“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;
    }
}