在一个奇怪的设置上工作,我的主要开发机器运行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;
}
......仍然给我这个错误。有一个聪明的方法来解决这个问题吗?我脑后的一些声音说“类别”,但我不确定从哪里开始。
提前感谢您的帮助。
答案 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?