使用Storyboard登录屏幕

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

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

因此,在检查登录用户名和密码后,我需要手动设置到登录界面:

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

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

 If(Login Successful){ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; HomeViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; [self presentViewController:viewController animated:YES completion:nil]; } 

可能重复的问题

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

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

您可以通过手动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; } }