SplitViewController提供了WithGesture解决方法 - 最佳解决方案?

时间:2012-05-08 16:54:25

标签: ios uisplitviewcontroller ios5.1

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

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

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

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

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

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

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这是检查UISplitViewController是否有presentsWithGestureProperty

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

在iOS 5.1中,它将设置属性,在以前的版本中,它不会输入if语句。

答案 1 :(得分:0)

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

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?