iOS [UIDevice currentDevice]调用setOrientation:不能强制转屏的问题

之前写好的一个AVPlayer封装,挪用到另一个项目中不能强制转屏了,各种检查注释验证,最后找到问题的根源,竟然是因为主标签控制器的构造方法写的有问题,用的是一个第三方的,继承自UITabBarController,在构造方法的实现里没有调用父类的初始化方法。
原本写的是这样,

- (instancetype)initWithViewControllers:(NSArray<UIViewController *> *)viewControllers imageList:(NSArray<UIImage *> *)imageList selectedImageList:(NSArray<UIImage *> *)selectedImageList titleList:(NSArray<NSString *> *)titleList configureModel:(XXX *)configureModel
{
    
    <#someCode#>
    
    return self;
}

增加调用父类初始化代码后,问题解决。

- (instancetype)initWithViewControllers:(NSArray<UIViewController *> *)viewControllers imageList:(NSArray<UIImage *> *)imageList selectedImageList:(NSArray<UIImage *> *)selectedImageList titleList:(NSArray<NSString *> *)titleList configureModel:(XXX *)configureModel
{
    self = [super init];
    
    <#someCode#>
    
    return self;
}

不知道这个初始化做了哪些东西,但确实影响到了强制转屏方法的成功调用。撇开这个主标签控制器的问题,把AVPlayer所在的控制器从push进入改为present后是可以强制转屏的,可能是模态出来后不再受那个问题的影响了。

猜你喜欢

转载自blog.csdn.net/Mr17Liu/article/details/82876458