iOS开发中控制屏幕旋转,个别界面强制横屏
2016-03-07 17:17
796 查看
由于应用需要,个别界面需要横评展示,其余的界面都是竖屏的
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0);当前viewcontroller是否支持转屏
- (NSUInteger)supportedInterfaceOrientations;当前viewcontroller支持哪些转屏方向
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation当前viewcontroller默认的屏幕方向
解决办法是:自定义一个nav类,在这个nav类里面实现几个方法:
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
并且设定其为程序入口,或指定为 self.window.rootViewController
随后添加自己的view controller,如果想禁止某个view controller的旋屏:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
如果想又开启某个view controller的全部方向旋屏支持:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
-(BOOL)shouldAutorotate
{
return YES;
}
从而实现了对每个view controller的单独控制。
简单点的方法: 把push变成present 这样横屏容易很多。
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0);当前viewcontroller是否支持转屏
- (NSUInteger)supportedInterfaceOrientations;当前viewcontroller支持哪些转屏方向
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation当前viewcontroller默认的屏幕方向
解决办法是:自定义一个nav类,在这个nav类里面实现几个方法:
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
并且设定其为程序入口,或指定为 self.window.rootViewController
随后添加自己的view controller,如果想禁止某个view controller的旋屏:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
如果想又开启某个view controller的全部方向旋屏支持:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
-(BOOL)shouldAutorotate
{
return YES;
}
从而实现了对每个view controller的单独控制。
简单点的方法: 把push变成present 这样横屏容易很多。
相关文章推荐
- iOS-MultipeerConnectivity框架开发(二)(优化中。。。)
- iOS----------SDWebimage源码解析(1)
- iOS判断邮箱,手机号码,车牌号是否合法
- iOS游戏控制手柄
- IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解
- iOS 点击远程通知消息,如何跳转到指定页面(控制器)
- iOS图片裁剪
- iOS同步后couldn't load project
- ios7状态栏重叠问题的解决方法
- iOS 点击远程通知消息,跳转到指定页面 (控制器)
- IOS 核心动画之CAKeyframeAnimation - iBaby
- IOS的WebView请求远程html并加载本地资源
- IOS学习 scrollView的代理
- 在iOS开发中如何优雅地进行图片缩放?
- iOS 各种报错集合
- iOS后台运行机制1
- iOS WebSocket详解
- NETBIOS名 和 Host名的不同
- IOS字符串自动计算文本的宽和高
- ios开发——日常之XCode 文件后面带有问号的问题怎么解决??