导航到 UITabBarController 上的某个选项卡
Posted
技术标签:
【中文标题】导航到 UITabBarController 上的某个选项卡【英文标题】:Navigate to a certain tab on a UITabBarController 【发布时间】:2017-07-21 18:06:53 【问题描述】:在一个 Objective-C Xcode 项目中,我目前已将 5 个不同的 ViewControllers 设置为选项卡栏上的 5 个不同选项卡(a、b、c、d、e)。每当我尝试从我的应用程序中除 a-e 之外的视图导航回此选项卡栏控制器时,我只能导航到 TabBarVC 的“a”视图(第一个视图)。如何导航以从其他视图说出此标签栏的 c 视图?
【问题讨论】:
导航到标签栏的“a”视图后,使用 selectedIndex 移动到“c”标签 【参考方案1】:您应该导航到 TabBarVC
传递参数 initialIndex
告诉应该显示哪个选项卡。然后重写viewWillAppear(_:)
方法并将selectedIndex
设置为initialIndex
(0..<numberOfControllers
) 以设置初始选择的选项卡。
class TabBarVC: UITabBarController
...
var initialIndex: Int?
...
override func viewWillAppear(_ animated: Bool)
super.viewWillAppear(animated)
if let initialIndex = initialIndex, let count = self.viewControllers?.count, initialIndex < count
self.initialIndex = nil
self.selectedIndex = initialIndex
如果你使用 segue,这可以在源控制器中完成:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
否则,只需在呈现控制器之前设置initialIndex
。
【讨论】:
以上是关于导航到 UITabBarController 上的某个选项卡的主要内容,如果未能解决你的问题,请参考以下文章
导航到另一个 UIViewController 后,UITabBarController 消失
如何从 UITabBarController 页面导航到具有 PUSH 样式的另一个视图控制器
UINavigationController到UITabBarController
UITabBarController 中的 UISearchController 没有响应触摸