之前项目,只能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