【问题标题】:SplitViewController presentedWithGesture workaround - best solution?SplitViewController presentWithGesture 解决方法 - 最佳解决方案?
【发布时间】:2023-03-13 16:06:01
【问题描述】:

在我的主要开发机器运行 Snow Leopard(因此,只有 iOS 5.0 SDK)和一台运行 Lion(和 5.1SDK)的笔记本电脑上进行了一个奇怪的设置。希望我有一个简单的解决方案能够在 Snow Leopard 机器上开发 5.1,但这是一个附带问题。

我正在学习 UISplitViewControllers,并希望使用滑动手势来更改详细视图控制器中显示的内容。实现了这一点,但在 5.1 中,有一个名为 presentWithGesture 的属性,当您滑动该方向时会显示 masterViewController。

你可以禁用它,但我的 5.0 机器给我一个错误提示(对于 5.0 正确)UISplitViewController 没有名为presentedWithGesture 的属性。

叹息......所以我想我会测试它,但以下内容:

if (self.splitViewController.presentedViewController) {
    self.splitViewController.presentsWithGesture = NO;
}

... 仍然给我这个错误。有没有聪明的方法来解决这个问题?我脑后有个声音说“类别”,但我不确定从哪里开始。

提前感谢您的帮助。

【问题讨论】:

    标签: ios uisplitviewcontroller ios5.1


    【解决方案1】:

    这是检查UISplitViewController是否有presentsWithGestureProperty的方法:

    if ([m_splitVC respondsToSelector:@selector(setPresentsWithGesture:)])
        [m_splitVC setPresentsWithGesture:NO];
    

    在 iOS 5.1 中它会设置属性,而在之前的版本中它不会进入 if 语句。

    【讨论】:

      【解决方案2】:

      你应该询问 splitViewController 是否可以接收到 PresentWithGesture 消息。

      if ([splitViewController respondsToSelector:@selector(presentsWithGesture:)]) {
          //edited away from dot syntax
          [splitViewController setPresentsWithGesture:NO];
      }
      

      请记住,这是一个代码块,用于与可能与您链接的 iOS 版本不同的用户一起工作。您遇到的问题恰恰相反,因为您在两个不同的设备上为同一个项目编写代码,每个设备都有不同的基础 SDK。

      编辑:见这里Is it possible to get the iOS 5.1 SDK for Xcode 4.2 on Snow Leopard?

      【讨论】:

      • 这基本上就是我在我的代码中所做的。你的方式更标准(更好),但它不能解决错误标志。我仍然得到:错误:语义问题:在“UISplitViewController *”类型的对象上找不到属性“presentsWithGesture”
      • 感谢您的努力,但我得到了完全相同的错误。我相信点语法只是访问 setter 的一种方式,但我之前也尝试过这种变体,以防万一。
      • 通过使用实际的 setter 方法,您应该只会得到一个编译器警告,即 UISplitViewController 可能不会响应消息 presentWithGesture。也许您的项目设置将警告视为错误。
      • 没有。我的项目不是这样设置的。我觉得如果你正在投射 ID 或其他东西,你只会收到那些温和的警告。
      • 我更新了我的答案,链接到另一个 SO question on using XCode 4.2 with iOS 5.1 in SL
      猜你喜欢
      • 2020-04-12
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      相关资源
      最近更新 更多