UIWindow 在退出之前的 UIWindow 后导致冻结

问题描述

我目前正在开发一个适用于 iOS10.3+ 的客观 c iOS 应用程序。应用程序配置为适用于除颠倒以外的所有方向。问题是该应用程序被设置为除一个之外的所有视图控制器的纵向。一个视图控制器需要是横向的,不能是纵向的。此视图控制器使用 avplayer 播放媒体。拥有一个横向视图控制器会导致一些问题。让我们调用一个纵向视图控制器 A,A 呈现 B,它是一个横向视图控制器。解雇 B 后,A 出现布局问题,导致集合和表格视图发生变化。为了解决这个问题,我尝试在一个新的 UIWindow 中呈现 B 并在用户关闭 B 时关闭它。理论上这很好,但在关闭 B 后似乎偶尔会出现延迟或冻结时间。感觉应用程序运行良好,但它不响应用户交互。有没有办法解决这个问题,或者有没有其他方法可以让我呈现一个横向视图控制器并禁止它影响前一个视图控制器的方向?

这是我在必要的地方显示和关闭 UIWindow 的代码。

演示时:

@property (nonatomic,strong) UIWindow * playerWindow;

self.playerWindow = [[UIWindow alloc] init];
UIViewController * playerViewController = [[UIViewController alloc] init];
playerViewController.view.backgroundColor = UIColor.clearColor;
self.playerWindow.rootViewController = playerViewController;
self.playerWindow.windowLevel = UIWindowLevelAlert;
[self.playerWindow makeKeyAndVisible];
[playerViewController presentViewController:self.playerController animated:true completion:nil];

在解雇时:

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
[keyWindow.rootViewController.view removeFromSuperview];
keyWindow.rootViewController = nil;
[keyWindow resignKeyWindow];
[keyWindow setHidden: YES];

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...