iOS中的简单视图控制器开关
这确实应该起作用。这是iOS中最简单的事情之一,由于某些原因,它只是不起作用。iOS中的简单视图控制器开关
我的故事板中有两个视图控制器。一个是InitViewController,另一个是ViewController,分别具有Init和ViewOne的故事板ID。我在InitViewController上有一个运行代码来切换视图的按钮。代码运行正常,但没有发生,尽管这一事实。这里是代码:
-(IBAction)NextPage:(id)sender{
ViewController *wc = [[ViewController alloc]
initWithNibName:@"ViewOne"
bundle:nil];
[self.navigationController pushViewController:wc animated:YES];
}
我导入ViewController.h,我只是不知道为什么这是行不通的。
initWithNibName:
适用于在.xib
文件中创建的视图控制器,而不是故事板。从故事板使用-[UIStoryboard instantiateViewControllerWithIdentifier:]
ViewController *wc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewOne"];
[self.navigationController pushViewController:wc animated:YES];
您也可以在故事板中设置推式继续,而不是在代码中执行操作 – dan
上面的代码似乎也没有做到。我甚至试过[[UIStoryboard storyboardWithName:@“Main”bundle:nil] instantiateViewControllerWithIdentifier:@“ViewOne”];我可能会错过什么?我会接下来尝试继续。 –
好的,push segue工作,但它仍然不理想。我希望能够根据以前的用户交互动态设置按钮以转到不同的区域。 –
创建一个视图控制器,你需要一个NavigationController - 尝试登录self.navigationcontroller
,你将看到的是null
在你的故事板添加UINavigationController
设置为入口点,设置InitViewController
为根视图控制器然后你可以使用:
ViewController *wc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewOne"];
[self.navigationController pushViewController:wc animated:YES];
你的初始视图控制器实际嵌套在'UINavigationController'内吗?当手动调用'pushViewController:animated:'时,这可能是“present”segue工作的原因之一,因为当它不嵌套在导航控制器中时,它会回落到模式演示文稿中。 –
好吧,如果它没有奏效,那就不足为奇了。视图控制器是否返回名称为ViewOne的精确视图控制器?你的视图控制器在哪里?它是在xib还是在故事板? –