废话不多说,先上代码,一般大家获取rootViewController基本都用
JYTabBarViewController *tabBarVC = (JYTabBarViewController *)[UIApplication sharedApplication].keyWindow.rootViewController;
没有错啊,可那种bug还不是必现的,出现的几率不大。
奔溃报错[UIApplicationRotationFollowingController selectedViewController];明显取到的rootViewController每次不一定是tabbar,所以没有这个方法。最后用
AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
JYTabBarViewController *tabBarVC = (JYTabBarViewController *)appdelegate.window.rootViewController;
这个方法取到的rootViewController每次都是每次都是tabbar,才解决了这个bug。为什么会出现这个bug。分析了一下,是因为我在当前界面还会有一个自定义的弹框出现,因为这个弹框我是重新创建了一个window,加在上面的。所以bug不是每次都出现,我怀疑是和我这个自定义的弹框出现的时间有很大的问题。最后为了验证,我直接去掉了弹框,然后这两种办法都可以稳定的获取tabbar。记录下这个bug。