我有一个继承自UITabBarController的viewController。
我试图覆盖selectedIndex变量,以便在didSet更改时通知它,如下所示。
override var selectedIndex: Int {
didSet {
refreshTabBar()
}
}问题是,当选项卡被更改时,这个函数没有被调用,我需要知道原因。
PS:我不想从didSelect委托方法.调用它。
谢谢。
发布于 2020-03-31 18:34:22
正如苹果文档中提到的selectedIndex
此属性名义上表示viewControllers属性数组中的索引。
因此,它是计算属性,从firstIndex返回selectedViewController的viewControllers。在设置它时,更改selectedViewController。
而是使用其他一些UITabBarController属性。F.e:
override var selectedViewController: UIViewController? {
didSet {
print(selectedIndex)
refreshTabBar()
}
}发布于 2020-03-31 18:06:04
以编程方式设置selectedIndex以调用函数
class FirstViewController: TabViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.selectedIndex = 1
}
}
class TabViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
}
override var selectedIndex: Int{
didSet {
refreshTabBar()
}
}
}https://stackoverflow.com/questions/60956030
复制相似问题