适配 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 的控制器。