我有一个带有HomeView和底部TabBar的应用程序,可在点击时加载其他视图。在此TabBar栏上,我还有一个“更多”按钮,单击该按钮可打开listView,此视图的每个单元格也会打开其他视图。 (当我谈论视图时,我的意思是显示新的隧道/导航控制器,例如:MyPicturesViewController,SettingsViewController等。)
有一个问题,我必须实现一个功能,即从我的HomeView上单击一个按钮,它会导航到一个不在TabBar上但在“更多”列表中的特定视图,并且还更新TabBar以突出显示更多按钮。

我首先尝试使用以下代码手动导航:

let viewController = UIStoryboard.instantiate(NewViewController.self)
self.viewController?.navigationController?.pushViewController(viewController, animated: true)


它运作良好
然后手动更新标签栏

self.viewController?.tabBarController?.selectedIndex = 4


但是更新TabBar会自动重定向到选定的索引(即“更多列表”视图),甚至不算上一遍代码中的手动导航。
所以我的问题是,是否可以在不加载自己的TabBar的情况下更新navigationcontroller?栏?标签栏viewcontrollers堆栈,但我没有成功。

在此先感谢您抽出宝贵时间来帮助我!

最佳答案

而不是先做

self.viewController?.tabBarController?.selectedIndex = 4


在tabBar委托方法中推送您的控制器

  func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        if viewController == desiredNavigationController {
            show(desiredNavigationController, animated: true) // push
            return false
        }
        return true
    }

关于ios - 如何在不进行Swift导航的情况下更新底部的TabBar?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59730945/

10-10 21:14