在实际项目中我们会碰到个别试图需要做出横屏竖屏等状态,
在之前我们对一个viewController的基类重写它的三个方法确实实现了,但是现在不满足需求了。
这个时候我们需要在appDelegate中重写这个方法
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
根据你的实际需要做出判断来返回方向
然后在你的试图里面改变方向即可例如
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskLandscapeRight;
}
在viewController 的viewWillAppear就可以,
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationPortrait] forKey:@"orientation"];//这句话是防止手动先把设备置为横屏,导致下面的语句失效.
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];
}
以上有不足之处请大家多多指教