我的 Storyboard中有这个设计:
如您所见,中间的 ViewController 连接到一个导航 Controller (我只是让导航栏不可见)。在这个中间页面中,我以编程方式添加了所有控件 (using Parse mobile platform login wizard)。
问题是我想在登录成功后导航到第三页。
- (void)logInViewControllerPFLogInViewController *)logInController didLogInUserPFUser *)user {
[self dismissModalViewControllerAnimated:YES];
ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
[self.navigationController pushViewController:viewController animated:YES];
printf("%s", [@"Ali" UTF8String]);
}
消息将被打印,但导航失败。你能帮我吗?也许我需要在 Storyboard中修复一些东西。
我不确定您是否应该发送 dismissModalViewControllerAnimated:
消息。您是否在登录 View Controller 之上以模态方式呈现另一个 View Controller ?
无论如何,当您在 Storyboard 中配置了 View Controller 时,您无法使用 alloc
和 init
创建 View Controller 。您需要询问 Storyboard 来创建它。有几种方法可以做到这一点。
让 Storyboard 创建您的 ViewController2
的一种方法是在 Storyboard 中进行推送。
ViewController2
。要执行转场,请执行以下操作:
- (void)logInViewControllerPFLogInViewController *)logInController didLogInUserPFUser *)user {
[self dismissModalViewControllerAnimated:YES];
[self performSegueWithIdentifier"didLogIn" sender:self];
}
另一种让 Storyboard创建您的 ViewController2
的方法是给它一个 Storyboard ID 并要求 Storyboard按 ID 实例化 View Controller 。然后就可以推送 View Controller 了。
在您可以要求 Storyboard 创建它之前,您必须为 Storyboard 中的 ViewController2
实例提供一个“ Storyboard ID”。
ViewController2
实例。然后,在您的代码中,要求 Storyboard 实例化 viewController2
:
- (void)logInViewControllerPFLogInViewController *)logInController didLogInUserPFUser *)user {
[self dismissModalViewControllerAnimated:YES]; // Should this be here?
ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
[self.navigationController pushViewController:viewController animated:YES];
}
关于iphone - 从一个 ViewController 导航到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827147/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |