我不确定你是否应该发送dismissModalViewControllerAnimated:
消息。您是否在登录视图控制器之上以模态方式呈现另一个视图控制器?
无论如何,当您在情节提要中配置了视图控制器时,您无法使用alloc
and创建视图控制器init
。您需要询问情节提要来创建它。有几种方法可以做到这一点。
单程
让故事板创建您的一种方法ViewController2
是在您的故事板中制作一个 push segue。
- 打开你的故事板。
- 按住 Control 从登录视图控制器拖动到
ViewController2
.
- 选择“推”segue 类型。
- 点击转场。
- 选择“视图”>“实用工具”>“显示属性检查器”。
- 在 Attributes Inspector(窗口右侧)中,将 segue 标识符设置为“didLogIn”。
要执行 segue,请执行以下操作:
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissModalViewControllerAnimated:YES];
[self performSegueWithIdentifier:@"didLogIn" sender:self];
}
另一种方式
让故事板创建您的另一种方法ViewController2
是给它一个故事板 ID 并要求故事板按 ID 实例化视图控制器。然后你可以推送视图控制器。
ViewController2
在您可以要求故事板创建它之前,您必须为故事板中的实例提供一个“故事板 ID” 。
- 打开你的故事板。
- 选择
ViewController2
实例。
- 选择“视图”>“实用工具”>“显示身份检查器”。
- 在 Identity Inspector(窗口右侧)中,输入“viewController2”。案例很重要!
然后,在您的代码中,让故事板实例化viewController2
:
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissModalViewControllerAnimated:YES]; // Should this be here?
ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
[self.navigationController pushViewController:viewController animated:YES];
}