Iphone 从一个ViewController导航到另一个
我的故事板中有这样的设计: 如您所见,中间的ViewController连接到导航控制器(我刚刚使导航栏不可见)。在这个中间页面中,我以编程方式添加了所有控件() 问题是,当登录成功后,我想导航到第三个页面Iphone 从一个ViewController导航到另一个,iphone,objective-c,ios,xcode,storyboard,Iphone,Objective C,Ios,Xcode,Storyboard,我的故事板中有这样的设计: 如您所见,中间的ViewController连接到导航控制器(我刚刚使导航栏不可见)。在这个中间页面中,我以编程方式添加了所有控件() 问题是,当登录成功后,我想导航到第三个页面 - (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user { [self dismissModalViewControllerAnimated:Y
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissModalViewControllerAnimated:YES];
ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
[self.navigationController pushViewController:viewController animated:YES];
printf("%s", [@"Ali" UTF8String]);
}
将打印消息,但导航失败。你能帮忙吗?也许我需要修复故事板中的某些内容。因为缺少很多相关代码/设置,我建议如下:
-(void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissViewControllerAnimated:YES completion:NULL];
Class klass = [[NSBundle mainBundle] classNamed:@"ViewController2"];
ViewController2 *viewController = [[klass alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
NSLog("%@", @"Ali");
}
ViewController2 *myViewController=[storyboard instantiateViewControllerWithIdentifier:@"TheNameOfYourController"]
[self.navigationController pushViewController:myViewController animated:YES];
我不确定您是否应该发送
dismissModalViewControllerAnimated:
消息。您是否在登录视图控制器上以模式显示另一个视图控制器
无论如何,当您在情节提要中配置了视图控制器时,无法使用alloc
和init
创建视图控制器。你需要让情节提要来创建它。有几种方法可以做到这一点
单程
让情节提要创建ViewController2
的一种方法是在情节提要中创建推送序列
ViewController2
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
[self dismissModalViewControllerAnimated:YES];
[self performSegueWithIdentifier:@"didLogIn" sender:self];
}
另一种方式
让情节提要创建ViewController2
的另一种方法是为其提供一个情节提要ID,并要求情节提要按ID实例化视图控制器。然后您可以推送视图控制器
在要求情节提要创建它之前,必须向情节提要中的ViewController2
实例提供“情节提要ID”
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];
}
使用情节提要标识符移动下一个viewController
nextViewController *objnextViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"nextViewControllerIdentifier"];
[self.navigationController pushViewController: objnextViewController animated:YES];
您能检查ViewController2的viedidload是否正常工作吗。第二,您不应该使用类似alloc]initWithNibName的东西。否不起作用。我无法加载它,这是我的问题。如果viewDidLoad不起作用,你能用NibName将你的alloc]init更改为alloc]init并查看吗?你也设置了你的rootviewcontroller吗?一切都在情节提要中,我如何使用NibName?不起作用。检查此链接可能会有所帮助::我在脚本的语法工作中遇到错误。你能多帮点忙吗?