[英]iOS on tab bar change
我想知道標簽欄中的標簽何時發生變化,以便我可以將其報告給 Firebase Analytics。 我該怎么做呢。
我試過這個
override func viewDidAppear(_ animated: Bool) {
Analytics.logEvent("projects_open", parameters: [:])
}
但是我有一種感覺,當我從另一個 ViewController 返回它時也會運行什么。 我需要一些可以檢測標簽何時打開而不是何時可見的東西。
是否有另一個功能適用於此?
斯威夫特 3.0
使用這兩個委托方法,不要忘記將委托分配給self。
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
//MARK: - UITabBarControllerDelegate
}
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
//MARk: - UITabBarDelegate
}
UITabbarController 上有一個委托函數用於檢測選項卡是否被選中:
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)
您還可以像這樣訪問選定的索引:
tabController.selectedIndex
如果您僅使用 tabBar.in viewDidLoad 將 tabBar 委托設置為 self 和
override func tabBar(_ tabBar: UITabBar, didSelect item:UITabBarItem)
{
//MARk: - UITabBarDelegate
if(tabBar.selectedIndex == 0) {
//Do something
}
else if(tabBar.selectedIndex == 1) {
//Do something.
}
}
如果您使用 tabBarController 使用此方法。並將委托標記為 self
func tabBarController(_ tabBarController: UITabBarController,
didSelect viewController: UIViewController) {
}
非常重要的注意事項:
如果您想保存之前選擇的 tabBar,您必須按自己的方式保存它。根據您的意願使用標志或 NSUserDefaults。 我之所以提到這一點,是因為我需要檢查現在在我的一個項目中的 View 中選擇了哪個選項卡。
斯威夫特 5
簡單的方法只需單擊鏈接 StakOverFlow 屏幕將打開https://stackoverflow.com/a/60539396/6881070
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.