ios 横屏返回上一界面怎么转为ipad竖屏横屏怎么调

“虐你如人机”,本是一段藐视对手的话,如今多多少少开始有点没底气了。——来自膨胀...
苹果在 iPhone 7 Plus 上第一次采用了双摄像头的设计,后续的机型当然不会“退化”。...
昨天上午,亚洲奥林匹克理事会在杭州正式宣布将与阿里体育结成战略合作伙伴。
苹果公司一直将其 Apple Park 新总部称为世界上最“绿色”的建筑,但是这并不能用在这...
一个 Pop 按键,就可以控制全家的智能家居设备。
锋友 tianyalangzijue 分享了自己给 2012 款 21.5 英寸 iMac 更换机械硬盘,并且加装 ...
Verizon 并未透露是哪家公司负责制造 Wear24 智能手表。
苹果目前在销售21.5和27英寸iMac,预计新产品将是这两个型号的升级版,发售时间是第三...
现在随着交通越发的发达便利,全球化的步伐加快,出国旅游成为了大家享受生活,认识世...
近日,游戏开发商IsCool在苹果商店中推出了其新作《BAZOO》。看起来游戏走的是休闲路...
《FAEDOM》是一款相当精美的冒险游戏,玩家在游戏中将会来到一个迷人的精灵王国,这里...
《AirPano City Book》确实非常不错,而且这种类型的全景城市 App 比较少,出色的设计...
中手游推出的“拿手好戏”计划旨在为更多的独立游戏提供帮助,让它们能够早入与玩家见...
《繁星(Full of Stars)》是一款飞行跑酷游戏,游戏的故事比较有趣,讲述的是人类为...
开发商想要从其他的一些操作方式上下手,其中重力感应就是一个突破口,在部分的竞速游...
一直以来,iPhone 配套的 Lightning 数据线的耐用性都是用户抱怨的一个方面。
越来越多智能厂商的产品支持HomeKit,对于苹果来说,也许到了该发力的时候了~
2014 年,苹果发布了它专属的智能家居平台HomeKit。两年后的 2016 年,HomeKit 的专属...
不管是补光还是“稳定” iPhone 或者说为 iPhone 增加一个麦克风,它都能搞定~
设计团队会根据人体工学设计来打造这款产品,让它可以最大程度的贴合用户的掌心。
特别是遇到突发事件的时候,它的作用就突显出来了~
你发现这个区别了吗?
以往的苹果产品推出四个月多后,发货一般都不会拖那么久的~
Ios10横屏竖屏切换bug
注册时间 最后登录
在线时间14 小时 UID
主题帖子人气
青苹果, 积分 57, 距离下一级还需 143 积分
ios10横屏竖屏切换屏幕会陷入一片混乱中……
求大神有没有解决方法
注册时间 最后登录
在线时间356 小时 UID
主题帖子人气
先顶起来再说,我的一样cao ta ma de
注册时间 最后登录
在线时间256 小时 UID
主题帖子人气
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!var sogou_ad_id=731545;
var sogou_ad_height=90;
var sogou_ad_width=980;iOS设置某个界面强制横屏,进入就横屏 - 简书
iOS设置某个界面强制横屏,进入就横屏
最近有一个项目,例如:A界面跳转到B界面,A界面是竖屏的,B界面进入就要横屏。花了半天的时间在网上搜索解决方案,有些论坛的大牛也就贴两行代码,具体实现也没有,对我们这种菜鸟造成一万点真实伤害。为了避免后人在浪费时间,在这里我整理一下,并且上传Demo到GitHub。在iOS7 8 9 上运行都OK.
方案一:使用 presentViewController
1.首先设置项目 支持的屏幕方向2.写一个子类CusNavigationController 继承 UINavigationController,在CusNavigationController中重写方法:shouldAutorotate 和 supportedInterfaceOrientations
@implementation CusNavViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
//支持旋转
-(BOOL)shouldAutorotate{
return [self.topViewController shouldAutorotate];
//支持的方向
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return [self.topViewController supportedInterfaceOrientations];
在AppDelegate中设置RootViewController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
[self.window makeKeyAndVisible];
ViewController *vc
=[[ViewController alloc]init];
CusNavViewController *nav = [[CusNavViewController alloc]initWithRootViewController:vc];
[self.window setRootViewController:nav];
return YES;
3.最重要的来咯,界面A中,重写旋转方法 和 支持的方向
//支持旋转
-(BOOL)shouldAutorotate{
return YES;
//支持的方向 因为界面A我们只需要支持竖屏
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskP
4.界面A跳转界面B的方法:
-(void)pushaction{
ViewControllertwo *vc = [[ViewControllertwo alloc]init];
//使用 presentViewController 跳转
[self presentViewController:vc animated:YES completion:nil];
5.界面B重写 旋转方法 和 支持的方向
//支持旋转
-(BOOL)shouldAutorotate{
return YES;
//支持的方向
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscapeL
//一开始的方向
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return UIInterfaceOrientationLandscapeL
方案二:使用方案一presentViewController确实很不错,但是毕竟也有些不方便,如果想用在界面使用Nav
push到别的界面就不太好实现了,所以,我又找了半天,又找到了解决方案。1.设置项目支持的旋转方向:
2.创建子类CusNavViewController 继承UINavigationController
3.界面A设置支持的方向 和 是否可以旋转
//是否可以旋转
- (BOOL)shouldAutorotate
//支持的方向
-(UIInterfaceOrientationMask)supportedInterfaceOrientations
return UIInterfaceOrientationMaskP
4.push进去的界面B 设置 方向 和 旋转
//支持的方向
-(UIInterfaceOrientationMask)supportedInterfaceOrientations
return UIInterfaceOrientationMaskLandscapeL
//是否可以旋转
-(BOOL)shouldAutorotate
return YES;
5.界面B设置物理设备方向:
//setOrientation 在3.0以后变为私有方法了,不能直接去调用此方法,否则后果就是被打回。
在网上搜了很多很久,都是这种调用私有方法的:
//强制横屏,会被打回。
if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
withObject:(id)UIInterfaceOrientationLandscapeRight];
不能直接调用,但是可以间接的去调用,下面的方法就是利用 KVO机制去间接调用,多次验证不会被打回,放心!
-(void)viewWillAppear:(BOOL)animated{
NSNumber *orientationUnknown = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];
[[UIDevice currentDevice] setValue:orientationUnknown forKey:@"orientation"];
NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];
这里不是直接使用苹果的私有变量,而是利用kvo的方法 间接的调用此方法,可以上架,不会被打回。
至于这里为什么要 多写这两行代码:NSNumber *orientationUnknown = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];[[UIDevice currentDevice] setValue:orientationUnknown forKey:@"orientation"];方法三:
*iOS中可以直接调用某个对象的消息方式有两种
*1.performSelector:withO*2.NSInvocation
//使用这里的代码也是oK的。 这里利用 NSInvocation 调用 对象的消息
- (void) viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
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 = UIInterfaceOrientationLandscapeL//横屏
[invocation setArgument:&val atIndex:2];
[invocation invoke];
第一个参数需要接收一个指针,也就是传递值的时候需要传递地址第二个参数:需要给指定方法的第几个参数传值注意:设置参数的索引时不能从0开始,因为0已经被self(target)占用,1已经被_cmd(selector)占用在NSInvocation的官方文档中已经说明(_cmd在Objective-C的方法中表示当前方法的selector,正如同self表示当前方法调用的对象实例。)[invocationsetArgument:&valatIndex:2];调用NSInvocation对象的invoke方法*只要调用invocation的invoke方法,就代表需要执行NSInvocation对象中制定对象的指定方法,并且传递指定的参数关于NSInvocation的博客http://blog.csdn.net/onlyou930/article/details/7449102/p/dahttp://my.oschina.net/u/2340880/blog/398552?fromerr=sAJ1ndvB方法一GitHub地址:
方法二 和 方法三 的GitHub地址:
爱生活爱代码
iOS技术博客以后会慢慢转移到简书来iOS从竖屏模式强制转换为横屏模式如何实现????
三星Galaxy S6 G9200 国行官方固件ZCU1AOFE五件套感谢52三星好友小侠首发固件版本 :型号:三星Galaxy S6 (SM-G9200)区域/运营商:中国大陆PDA:G9200ZCU1AOFECSC...
该内容由系统自动生成
参考价:¥2499.00
热门排行:第 93 名
主屏尺寸5.1英寸
电池容量2550mAh
主屏分辨率像素
电池类型不可拆卸式电池
后置摄像头1600万像素
CPU频率2.1GHz(大四核),1.5GHz(小四核)
前置摄像头500万像素
CPU类型三星 Exynos
名网友点评分数
微信公众账号ZOL问答堂
关注微信,随时随地解答您的疑惑
ZOL问答堂官方微博@ZOL问答堂
关注成功!该问题被回答后,将给您发送站内短信。
您也可以通过关注问答堂微信,及时获得您关注问题的回答。
微信关注问题方法“”

我要回帖

更多关于 ipad横屏竖屏切换 的文章

 

随机推荐