【问题标题】:How to update bottom TabBar without doing the navigation in Swift?如何在不使用 Swift 导航的情况下更新底部 TabBar?
【发布时间】:2020-05-01 00:17:07
【问题描述】:

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

我一开始尝试使用此代码手动导航:

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

效果很好 然后手动更新标签栏

self.viewController?.tabBarController?.selectedIndex = 4

但是更新TabBar 会自动重定向到选定的索引,这是更多列表视图,甚至不考虑我在前面代码中所做的手动导航。 所以我的问题是,是否可以在不加载自己的navigationcontroller? 的情况下更新TabBar 栏如果不能,我怎样才能实现我想做的事情,我尝试了很多事情,例如创建navigationcontroller 及其视图控制器并替换tabbar viewcontrollers 堆栈但我没有成功。

提前感谢那些愿意花时间帮助我的人!

【问题讨论】:

    标签: ios swift navigation stack tabbar


    【解决方案1】:

    而不是之前做的

    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
        }
    

    【讨论】:

    • 感谢您的回答,通过您的方法,tabBar 会在显示后消失,我需要 tabbar 保持并更新,同时显示所需的 ViewController
    • 推入当前导航控制器不会隐藏你的标签栏
    猜你喜欢
    • 2023-01-17
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多