当我们尝试在切换后推送新的viewcontroller时,为什么tabbar控制器开关不工作

问题描述 投票:0回答:1

我正在使用以下命令切换标签栏

self.tabbarcontroller.selectedIndex=0;

这是工作,但如果我正在推另一个视图控制器然后没有发生标签栏的切换,但如果我手动选择第一个视图控制器,那么我可以看到推动视图控制器在那里。

但是为什么只有当另一个视图控制器被推到顶部时才会发生切换。

仅供参考:我在顶视图控制器顶部推动视图控制器的方式没有问题,因为我尝试注释代码以切换标签栏项目并将其推送没有任何问题。

任何帮助表示赞赏。

--

更新:

这是推送视图控制器的代码

- (UINavigationController*) rootNavigationController {
    UITabBarController* tabBarController = (UITabBarController*) [[self window] rootViewController];

    return  (UINavigationController*) [tabBarController selectedViewController];
}

  [rootNavigationController pushViewController:newViewController animated:true];
ios objective-c uiviewcontroller uinavigationcontroller uitabbarcontroller
1个回答
0
投票

我之前有时会遇到同样的问题。索引正在以某种方式改变。要处理这种情况,最好使用didSelectItem委托并将当前项存储为导航控制器。所以不需要使用[tabBarController selectedViewController]。参考:UITabBar(Controller) - Get index of tapped?

© www.soinside.com 2019 - 2024. All rights reserved.