【问题标题】:Moving from one view to another iOS从一个视图移动到另一个 iOS
【发布时间】:2018-08-16 19:33:08
【问题描述】:

我对 iOS 开发比较陌生。我要从一个 viewController 移动到另一个我在按钮单击时使用模态 segue 转换。这是一个游戏,所以我想让用户点击图片来移动应用程序菜单。

我有一个显示多张图像的主页,单击一个我希望能够移动到另一个视图。目前使用模态 segue 执行此操作会导致我的 touchesEnded 事件出现奇怪的问题,例如,如果我导航到页面 3 次,则 touchesEnded 事件会被触发 3 次。

我有没有更好的方法来做到这一点,还是我只是缺少基本的东西?

谢谢

【问题讨论】:

    标签: ios objective-c ipad


    【解决方案1】:

    是的,我认为您必须将导航控制器设为您的根视图控制器,然后相应地推送视图

    UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:YOUR_BASE_CONTROLLER]
    self.rootViewController = nav;
    

    这是在您的应用委托中。

    然后在你的操作方法中

    [self.navigationController pushViewController:secondViewController animated:YES]
    

    【讨论】:

    • 谢谢!这似乎已经修复了始终触发的 touchEnded 事件。但是,如果 appDelegate 不知道放在哪里,我没有放任何代码。相反,我在我的主视图控制器上附加了一个 NavigationController,是一样的吗?
    • 您可以在应用程序委托中使用选项功能完成启动的应用程序中添加它。但是,如果您当前的实现有效,请保持这种方式。
    【解决方案2】:

    我假设您使用故事板通过 segues 链接 VC。

    Modal segues 非常适合简单的过渡,但当它们仅通过 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];
    }
    

    【讨论】:

    • “目前使用模态 segue 执行此操作会导致我的 touchesEnded 事件出现奇怪的问题,例如,如果我导航到页面 3 次,则 touchesEnded 事件会被触发 3 次。” 当我以这种方式实现它时,我仍然得到上面提到的行为
    • 感谢 Dana K 的好提示,您的示例在我的情况下完美运行 :)
    【解决方案3】:

    每次执行模态转场时,都会丢失之前使用的 UINavigationController。您需要做的是在您正在执行模态搜索的视图中嵌入UINavigationController

    前几天查看question I answered,以帮助您更清楚地了解我在说什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      相关资源
      最近更新 更多