1

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

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

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

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

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

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

在此先感谢您的帮助。

4

2 回答 2

1

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

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

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

于 2012-07-06T13:08:31.780 回答
0

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

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

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

编辑:看这里是否有可能在 Snow Leopard 上获得适用于 Xcode 4.2 的 iOS 5.1 SDK?

于 2012-05-08T16:57:59.740 回答