我有一个带有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/