У меня есть приложение панели вкладок, в котором у меня есть 3 различных представления, каждое с собственным контроллером представления.
В штрих-коде на вкладке у меня есть это, чтобы обрабатывать вращение.
#import "RotatingTabBarController.h"
@implementation RotatingTabBarController
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
@end
Затем в контроллере второго вида, который я хочу вращать, в зависимости от ориентации устройства, у меня есть:
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
И для двух других видов, которые я не хочу вращать, у меня установлен этот метод.
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
ПРОБЛЕМА: так что это прекрасно работает в представлении 1 и представлении 3, когда вы поворачиваете устройство, они остаются в портретном режиме, который требуется. Когда в представлении 2 я поворачиваюсь в альбомную ориентацию, представление делает, как ожидалось, и поворачивает в альбомную ориентацию. НО при нажатии на вкладку «Вид 1» или «Вид 3» в режиме «Пейзаж» в режиме «Вид 2» Вид 1 и Вид 3 находятся в альбомном режиме.
Я не могу понять, как заставить их работать в портретной ориентации, даже если вид 2 поворачивается к пейзажу.
Кто-нибудь знает, как это сделать?