当iOS7上的selectedIndex值发生变化时,TabBar会消失

我有一个iOS应用程序,使用6.1 base sdk构建.现在我将应用程序移动到下一个SDK 7.0.我有一个tabbar,上面有5个项目.每个选项卡都是导航控制器.此外,推入这些导航控制器的每个视图控制器都会使用该方法隐藏标签栏
[self setHidesBottomBarWhenPushed:YES];

当我在第二个选项卡时,我按下一个按钮,在网络连接后,它会弹出到根视图控制器并更新tabbarcontroller的selectedIndex.可以通过appdelegate中的引用访问主tabbar控制器.发生的事情是当选择索引为1然后我将其设置为2标签栏消失.然而,当它是2并且我再次设置它2时没有问题.

[self.application.tabBarController setSelectedIndex:2];

此问题仅发生在iOS 7模拟器中.当我在iOS 6模拟器上进行模拟时,它不会发生.我的tabbar项目也是自定义的,我不知道它是否与它有关.

可能是什么问题?

解决方法

我找到了解决方案.我的代码起初是以下内容.标签栏控制器中的两个导航控制器都弹出到根视图控制器.
[self.navigationController popToRootViewControllerAnimated:YES];
[self.application.tabBarController setSelectedIndex:2];
[self.application.tabBarController.secondTabNavigationController popToRootViewControllerAnimated:YES];

当我重新排列popToRootViewController方法的顺序时,问题就消失了.

[self.application.tabBarController setSelectedIndex:2];
[self.application.tabBarController.secondTabNavigationController popToRootViewControllerAnimated:YES];
[self.navigationController popToRootViewControllerAnimated:YES];

第一个在iOS 6设备中运行良好,但在iOS 7设备中没有.第二个适用于所有人.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...