获取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。

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

推荐阅读更多精彩内容