在Objective-C Xcode项目中,我目前在标签栏(a,b,c,d,e)上设置了5个不同的ViewControllers到5个不同的标签。每当我尝试从我的应用程序中的视图(而不是a-e)导航回此标签栏控制器时,我只能导航到" a" TabBarVC的视图(第一个视图)。如何导航以从其他视图说出此标签栏的c视图?
答案 0 :(得分:0)
您应该导航到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
。