iOS开发关于某页面横竖屏切换的坑

   我们在使用模态视图的时候,如果需要再接下来的页面可以进行横竖屏切换,就必须注意一个大坑,我查遍了网络,各种方法用尽了,终于想到了解决方案。
需求:
  当前页面必须横屏显示,不能竖屏显示,模态视图弹出页面可以进行横竖屏切换。同时,该项目同时使用导航栏和工具栏。
解决方案:
  关于横竖屏切换这方面,网上相关的解决方案很多,在这里不加以描述,我主要想说的是,网上的那些解决方案不一定能解决你项目中遇到的问题。他们更多的是一个测试Demo,在具体项目中,并不能生效。话不多说,直接上代码。

- (BOOL)shouldAutorotate {
    return NO;
}     
//支持的方向 因为界面A我们只需要支持竖屏
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

  网上出现最多的代码就是这个,在只需要竖屏的页面代码中填入。但是呢,你可以试试,这样做有时候并不生效。这个坑就在你同时使用了导航栏和工具栏,所以这就需要你同时在这两个类中加入这两个方法。
  但这时候又出现了问题:如果你用的系统默认的导航栏和默认的工具栏,以及几个页面都是单独的controller,这个时候你就需要使用到了继承的概念了,子类化Navigation和TabBar,在子类中重写这两个方法就ok了。同时如果你的几个主Controller都是单独存在的,这样你就必须在每个类里写一遍这两个方法,有点low,所以这里仍然是使用继承的概念,将几个controller全部继承此类,在此类中实现这两个方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值