我在swift 5中使用了标签栏。但是当我单击选项卡栏项目时,选项卡栏确实选择了未调用的项目。但我没有使用TabbarViewController。我已经在我的视图控制器中使用了以下代码。
class ViewController: UIViewController,UITabBarDelegate {
@IBOutlet weak var bottomTab: UITabBar!
override func viewDidLoad() {
super.viewDidLoad()
bottomTab.delegate = self
}
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
print("Selected item")
}
}
请帮助我从视图控制器调用didSelectItem
1( 在你的视图控制器中继承 UITabBarControllerDelegate
2( 在视图中设置委托DidLoad
3( 添加函数
例:
class ViewController: UIViewController, UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 0 {
//do your stuff
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
}
}
我相信您正在实现不正确的方法。请尝试改为实现此方法:
func tabBar(UITabBar, didSelect: UITabBarItem( 当用户选择选项卡栏项时发送给代理。
源