Ответ 1
В этом решении объясняется, как управлять ориентацией на отдельных контроллерах представлений, если они управляются навигационным контроллером.
В Xcode 5 создайте новый файл типа "Objective-C category", установите его "Category" в "rotation" и выберите "UINavigationController" как "Category on".
В проекте появится новая пара файлов, имеющая следующие имена: UINavigationController + rotation.h UINavigationController + rotation.m
В файле .m напишите следующий код:
- (BOOL) shouldAutorotate
{
return [[self topViewController] shouldAutorotate];
}
- (NSUInteger) supportedInterfaceOrientations
{
return [[self topViewController] supportedInterfaceOrientations];
}
Таким образом, контроллер навигации позволит текущему контроллеру верхнего уровня определить политику ориентации.
Затем в каждом контроллере определенного вида, который управляется навигационным контроллером, вы можете переопределить два связанных с ориентацией методов.
Например, если конкретный контроллер просмотра должен отображаться только в портретной ориентации:
- (BOOL) shouldAutorotate
{
return NO;
}
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Убедитесь, что желаемая ориентация является одной из тех, которые указаны в информации о развертывании проекта. Надеюсь, что это достаточно подробно и может помочь.