我对iOS开发相对较新。我要从一个viewController移动到另一个viewController,我在按钮点击时使用模态segue转换。这是一款游戏,所以我想让用户点击图片来移动应用菜单。
我有一个显示多个图像的主页面,点击一个我希望能够移动到另一个视图的图像。目前使用模态segue执行此操作会导致我的touchesEnded事件出现奇怪问题,例如,如果我导航到页面3次,则touchesEnded事件会被触发3次。
我有更好的方法来做这件事,还是我只是缺少基本的东西?
由于
答案 0 :(得分:1)
我假设您正在使用Storyboard使用segue链接VC。
模态segue非常适合简单的过渡,但实际上似乎限制了当它们通过SB链接时可以完成的任务。我发现创建一个包含以下VC segue的IBAction,不仅可以让您更有效地控制segue,还可以让您更清楚地了解转换过程中实际发生的情况。
-(IBAction)goToVc:(id)sender{
//Other code to take place during the segue here
//This will identify the Storyboard in use
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
//This will identify the View Controller to switch to
SecondViewController *vc2 = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewControllerID" ];
[self presentViewController:vc2 animated:YES completion:NULL];
}
答案 1 :(得分:1)
是的,我认为您必须使导航控制器成为根视图控制器,然后相应地推送视图
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:YOUR_BASE_CONTROLLER]
self.rootViewController = nav;
这是在您的app委托中。
然后在你的行动方法
[self.navigationController pushViewController:secondViewController animated:YES]
答案 2 :(得分:0)
每次执行模态segue时,都会丢失之前使用的UINavigationController
。您需要做的是在视图中嵌入UINavigationController
,表示您正在执行模态转换。
前几天查看question I answered,以帮助您更清楚地了解我所谈论的内容。