首先说明一下,这个bug把我折磨的想死的心都有了!下面我们还是来说说bug,希望遇到这样bug的程序猿们共勉:
一、环境阐述:
我的项目中是用storyboard和自定义tabBarController相结合的。在首页是百度地图,是tabBarController中的一个子控制器,第二个自控制器是做个人中心的。
二:功能讲解:
要做得功能也非常简单,就是在点击个人中心的退出登录按钮之后,控制器切换到首页的百度地图。
三:bug所在:
首先因为我的主体框架是用storyboard搭建的,所以我再点击退出登录的按钮方法中是通过切换根控制器加载的storyboard来更改的,如下代码:
UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
HXTabBarController *tabBarC = [story instantiateInitialViewController];
self.tabBarController = tabBarC;
self.window.rootViewController = tabBarC;
但是这样会出现bug,在程序首次下载之后,切换到个人中心界面,首次点击退出按钮,没有问题,但是再次切换到个人中心界面点击退出按钮,程序就会在百度地图初始化的时候崩溃。
四、解决方法:
然后我变换了一种方法,一开始直接使用[self.tabBarController setSelectedIndex:0];这样底部的tabBar并没有发生变化,最后的处理方法,是通过强转控制器,改变选项修改,代码如下:
[self.tabBarController setSelectedIndex:0];
HXTabBarController *tabBarCont = (HXTabBarController *)self.tabBarController;
HXTabBarButton *btn =(HXTabBarButton *)tabBarCont.myTabBar.subviews[0];
btn.selected = YES;
HXTabBarButton *btn1 =(HXTabBarButton *)tabBarCont.myTabBar.subviews[1];
btn1.selected = NO;
希望这个能够帮助到大家,这个bug首先能发现就是个奇葩,仅仅只有在首次安装,第二次点击退出登录切换能才能碰到,希望遇到这样bug的小伙伴能够共勉!