SplitViewController представил обходной путь жестов - лучшее решение?

Я работаю над странной установкой, где моя основная машина разработки работает под управлением Snow Leopard (и, следовательно, у меня только iOS 5.0 SDK), а также у ноутбука с Lion (и 5.1SDK). Хотелось бы, чтобы у меня было простое решение для разработки 5.1 на машине Snow Leopard, но это побочная проблема.

Я изучаю UISplitViewControllers и хотел сделать жест пальцем, чтобы изменить то, что отображается в контроллере подробного представления. Реализовано это, но в 5.1, есть свойство с именем presentWithGesture, которое показывает masterViewController, когда вы проводите в этом направлении.

You can disable it, but my 5.0 machine gives me an error saying (correct for 5.0) that UISplitViewController doesn't have a property named presentedWithGesture.

Sigh... so I thought I'd test for it, but the following:

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

... still gives me that error. Is there a clever way to get around this? Some voice in the back of my head says "categories," but I'm unsure where to start.

Заранее спасибо за помощь.

2 ответа

Это способ проверить, еслиUISplitViewController имеет presentsWithGestureProperty:

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

В iOS 5.1 он будет устанавливать свойство, а в предыдущих версиях он не будет вводить оператор if.

Вы должны спросить splitViewController, может ли он получить сообщение presentWithGesture.

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

Помните, что это блок кода для работы с пользователями, которые могут не использовать ту версию iOS, с которой вы ссылаетесь. Проблема, с которой вы столкнулись, заключается в том, что вы пишете код для одного и того же проекта на двух разных устройствах, каждое из которых имеет свой базовый SDK.

Изменить: см. Здесь Можно ли получить iOS 5.1 SDK для Xcode 4.2 на Snow Leopard?

Другие вопросы по тегам