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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我们尝试在切换后推送新的viewcontroller时,为什么tabbar控制器开关不工作相关的知识,希望对你有一定的参考价值。

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

self.tabbarcontroller.selectedIndex=0;

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

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

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

任何帮助表示赞赏。

--

更新:

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

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

    return  (UINavigationController*) [tabBarController selectedViewController];
}

  [rootNavigationController pushViewController:newViewController animated:true];
答案

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

以上是关于当我们尝试在切换后推送新的viewcontroller时,为什么tabbar控制器开关不工作的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序被终止状态时,点击推送通知后无法导航到 ViewController

在 iOS 10 下使用 FCM 在前台单击推送通知后无法导航到特定的 viewController

iOS点击推送通知打开具体的viewcontroller

Swift 2 - 当 AlertController 出现时如何切换到另一个 ViewController?

UITableView 在推送新的 viewController 时重新加载数据

当推送一个新的控制器时,pushViewController 是不是应该释放 oldController?