标签栏上的iOS更改

时间:2017-05-27 10:07:48

标签: ios swift xcode firebase viewcontroller

我想知道标签栏中的标签何时更改,以便我可以将其报告给Firebase Analytics。我该怎么做呢。

我试过这个

override func viewDidAppear(_ animated: Bool) {
    Analytics.logEvent("projects_open", parameters: [:])
}

但我有一种感觉,当我从另一个ViewController回到它时会发生什么。我需要一些能够检测到标签打开时的内容,而不是当它变得可见时。

还有另一个适用于此的功能吗?

4 个答案:

答案 0 :(得分:1)

Swift 3.0

使用这两个委托方法,不要忘记将委托分配给自己。

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
    //MARK: - UITabBarControllerDelegate
}

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
   //MARk: - UITabBarDelegate
}

答案 1 :(得分:0)

UITabbarController上有一个委托函数,用于检测是否选择了选项卡:

String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
String connString = "jdbc:jtds:sqlserver://" + server + "/" + database + ";user=" + username + ";password=" + password + ";";
con = DriverManager.getConnection(connString);

您还可以像这样访问所选索引:

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)

答案 2 :(得分:0)

如果你只使用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,请使用此方法。并将委托标记为自己

func tabBarController(_ tabBarController: UITabBarController, 
didSelect viewController: UIViewController) {
}

非常重要注意:

如果您想保存之前选择的tabBar,则必须将其保存在路上。根据您的意愿使用flag或NSUserDefaults。我提到这个的原因是因为我需要在我的一个项目的View中检查哪个选项卡已被选中。

答案 3 :(得分:0)

雨燕5

只需单击链接StakOverFlow即可轻松打开屏幕 https://stackoverflow.com/a/60539396/6881070