关闭

关于百度地图奇葩的bug

494人阅读 评论(0) 收藏 举报

首先说明一下,这个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的小伙伴能够共勉!
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8491次
    • 积分:260
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    最新评论