При первом просмотре убедитесь, что
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return Yes;
}
И во втором виде установите его на
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
Обновление:
Хорошо, попробуй это ...
В вашем главном контроллере / делегате приложения, в котором shouldAutorotateToInterfaceOrientation запускается каждый раз, когда устройство вращается, поместите переменную глобального уровня. что-то вроде
.h
@interface NavAppDelegate : NSObject <UIApplicationDelegate> {
Bool *isMain;
}
.m
-(void)viewDidLoad {
isMain = Yes;
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
if (isMain) {
return Yes;
} else {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
}
// This bit is where you'll have to adapt it to how you change your views
// but it's a basic idea.
-(void)bitThatDoesTheViewChange:(viewController *) controller {
isMain = No;
*viewController = controller;
[viewController release];
isMain = Yes;
}