适配 iOS 13 上 UIViewController 的 modalPresentationStyle 和 presentViewController 的问题

适配 iOS 13 上 因 modalPresentationStyle 值变成了 UIModalPresentationPageSheet,导致之前通过 presentViewController:animated:completion: 方法弹出的控制器效果非全屏的问题

我是通过 Category 和 Method Swizzling 的方式,当设置 UIViewController 的 modalPresentationStyle 的时候,记录下已经设置过此值,当调用 presentViewController:animated:completion: 方法的时候,判断将要弹出的 UIViewController 是否设置过 modalPresentationStyle 的值,如果没有设置过,并且 modalPresentationStyle 值为 UIModalPresentationPageSheet,则说明是 iOS 13 中的默认设置,在这种情况下,我把 modalPresentationStyle 值改为 UIModalPresentationFullScreen,然后再弹出控制器,就可以解决在 iOS 13 弹出的控制器效果非全屏的问题,同时也不影响之前设置过 modalPresentationStyle 的控制器。

GitHub地址点这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容