获取tabbar的rootViewController遇到的坑。

废话不多说,先上代码,一般大家获取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。

你可能感兴趣的:(获取tabbar的rootViewController遇到的坑。)