我对 iOS 开发比较陌生。我要从一个 viewController 移动到另一个我在按钮单击时使用模态 segue 转换。这是一个游戏,所以我想让用户单击图像来移动应用程序菜单。
我有一个显示多个图像的主页,单击一个我希望能够移动到另一个视图。目前使用模态 segue 执行此操作会导致我的 touchesEnded 事件出现奇怪的问题,例如,如果我导航到页面 3 次,则 touchesEnded 事件会被触发 3 次。
有没有更好的方法让我做到这一点,或者我只是缺少基本的东西?
谢谢
我对 iOS 开发比较陌生。我要从一个 viewController 移动到另一个我在按钮单击时使用模态 segue 转换。这是一个游戏,所以我想让用户单击图像来移动应用程序菜单。
我有一个显示多个图像的主页,单击一个我希望能够移动到另一个视图。目前使用模态 segue 执行此操作会导致我的 touchesEnded 事件出现奇怪的问题,例如,如果我导航到页面 3 次,则 touchesEnded 事件会被触发 3 次。
有没有更好的方法让我做到这一点,或者我只是缺少基本的东西?
谢谢
是的,我认为您必须将导航控制器设为您的根视图控制器,然后相应地推送视图
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:YOUR_BASE_CONTROLLER]
self.rootViewController = nav;
这是在您的应用程序委托中。
然后在您的操作方法中
[self.navigationController pushViewController:secondViewController animated:YES]
我假设您正在使用情节提要使用 segues 链接 VC。
模态转场非常适合简单的过渡,但当它们仅通过 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];
}
每次执行模态转场时,都会丢失UINavigationController
之前使用的转场。您需要做的是将 a 嵌入UINavigationController
到您正在执行模态搜索的视图中。
查看我前几天回答的问题,以帮助您更清楚地想象我在说什么。