美文网首页
-[UIApplicationRotationFollowing

-[UIApplicationRotationFollowing

作者: f0b693d9893e | 来源:发表于2019-03-05 10:33 被阅读3次

    每天早上打开电脑,例行检查崩溃情况统计,发现了一个新bug。然而看了代码,貌似没问题啊,后来研究一番发现了这个bug。话不多说,上代码。。。

    出现崩溃的代码 崩溃原因

    看起来上段代码没有什么问题,可是当UIAlertView的出现的同时然后调图中的代码就出现UIApplicationRotationFollowingController。因为UIAlertView出现生成了一个新的window,加在了界面上面。在新建的window上展示的,所以keyWindow已经改变了,无法通过[UIApplicationsharedApplication].keyWindow获取rootViewController。这个时候获取到的keyWindow就是UIAlertControllerShimPresenterWindow。而此时keyWindow的rootViewController就是UIApplicationRotationFollowingController。然后当然了,找不到方法导致崩溃。

    解决办法如下:

    1、首先,获取rootViewController方式应该为: UITabBarController *tab =(UITabBarController *)[UIApplication sharedApplication].delegate.window.rootViewController;                                                   2、判断类型是否正确: if (tab && [tab isKindOfClass:[UITabBarController class]]) { tab.selectedIndex = 2;; }

    相关文章

      网友评论

          本文标题:-[UIApplicationRotationFollowing

          本文链接:https://www.haomeiwen.com/subject/qeqnuqtx.html