Я думаю, что ваше if
условие всегда терпит неудачу, поэтому вы, вероятно, всегда возвращаете NO
, что означает «Я не поддерживаю какую-либо ориентацию», что, очевидно, не соответствует действительности ... Какую самую низкую цель вы хотите поддержать?
Если ваш else
должен обрабатывать iPhone / iPod, вы должны вернуть YES
хотя бы для одной ориентации:
return (interfaceOrientation == UIInterfaceOrientationPortrait);
Или
return inOrientation == UIDeviceOrientationLandscapeLeft
|| inOrientation == UIDeviceOrientationLandscapeRight
|| inOrientation == UIDeviceOrientationPortrait
|| inOrientation == UIDeviceOrientationPortraitUpsideDown;
, если вы планируете поддерживать все ориентации.
Если вы заботитесь о поддержке версий iOS ниже 3.2 и хотите протестировать их на симуляторе, вы можете изменить свою «проверку iPad» на что-то подобное.
- (BOOL)amIAnIPad {
// This "trick" allows compiling for iOS < 3.2 and testing on pre 3.2 simulators
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200)
if ([[UIDevice currentDevice] respondsToSelector: @selector(userInterfaceIdiom)])
return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad);
#endif
return NO;
}
Подробнее об этом трюке можно узнать из Блог Джеффа Ламарша .