Xcode13 实现指定界面横屏

在iOS13中,为解决指定界面横屏的问题,以往的方法失效,采用临时方案通过在竖屏界面绘制横屏,但存在适配和功能限制。最终发现,需要在父类SMTNavigationController中添加旋转代码,子类再实现相关旋转方法,才能实现在iOS13上的横屏功能。添加进入和退出时的横竖屏切换代码后,问题得以解决。
摘要由CSDN通过智能技术生成

之前项目,只能IOS12可以指定界面横屏,其他界面竖屏。但是到IOS13 发现用查到各类方法,都不行,最后采用临时方案,在竖屏界面绘制横屏予以解决。但是该方案有不少隐患,面临各个机型的适配工作,而且部分功能受限制。因此最后,还是要积极寻找彻底的横屏方案。

一个月后,在解决一个IOS12横屏问题时候,参考相关案例,终于定位到原因了。见代码:

 SMTTabBarController *vc      = [[SMTTabBarController alloc] init];
        SMTNavigationController *nav = [[SMTNavigationController alloc] initWithRootViewController:vc];
        self.window.rootViewController = nav;

我们项目,在加载界面时候,继承了父类SMTNavigationController.后面每个层都继承该类。但是该类没有实现任何旋转相关代码。在IOS12可以直接指定子类实现旋屏,但是IOS13要求,必须父类也有对应旋屏代码,才可以实现指定界面横屏。

增加代码如下:

#import "SMTNavigationController.h"


@interface SMTNavigationController () <UIGestureRecognizerDelegate>

@end

@implementation SMTNavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    
   

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值