-(UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
-(BOOL)shouldAutorotate
{
return self.isON;
}
ison=!ison;
if (ison==YES)
{
[self forceOrientation:UIInterfaceOrientationPortrait];
}else{
[self forceOrientation:UIInterfaceOrientationLandscapeRight];
}
}
}
- (void)forceOrientation: (UIInterfaceOrientation)orientation {
if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
SEL selector = NSSelectorFromString(@"setOrientation:");
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
[invocation setSelector:selector];
[invocation setTarget: [UIDevice currentDevice]];
int val = orientation;
[invocation setArgument:&val atIndex:2];
[invocation invoke];
}
}
其实viewWillDisappear代码也就是强制转成竖屏的意思,特别要注意的是 int val = UIInterfaceOrientationPortrait; 这句代码。