所以我有一个UITabBarController,其中嵌入了两个View Controller。我实现了did select选项卡栏方法,该方法在用户选择选项卡时将值传递给该控制器。但是,当tabBarController第一次加载时,即使我有,也不会调用did select方法
ListView
选择第一个索引。基本上,我只是试图在视图加载时自动选择第一个选项卡的Bar Item,并使其调用didSelectTabBarItem方法
ObservableCollection.Move
答案 0 :(得分:0)
将此复制到您的代码中
class HomeTabBarVC: UITabBarController {
var isIpad = false
let button = UIButton.init(type: .custom)
var index = 0
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
APPDELEGATE.tabBar = self
}
}
extension HomeTabBarVC : UITabBarControllerDelegate {
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
print("the last selected index is : \(selectedIndex)")
APPDELEGATE.tabBarLastSelectedIndex = selectedIndex
print("the current selected index is : \(String(describing: tabBar.items?.index(of: item)))")
APPDELEGATE.tabBarCurrentSelectedIndex = tabBar.items?.index(of: item) ?? 0
}
}
在appdelegate中声明此变量,
var tabBar : UITabBarController?
答案 1 :(得分:0)
问题与此类似。 tabBarController didSelect does not get called
optional func tabBarController(_ tabBarController: UITabBarController,
didSelect viewController: UIViewController)
在iOS v3.0和更高版本中,选项卡栏控制器调用此方法,而不管所选视图控制器是否更改。此外,仅当用户点击选项卡栏时才调用它,而当您的代码以编程方式更改选项卡栏内容时,则不会调用该
。