我想知道标签栏中的标签何时更改,以便我可以将其报告给Firebase Analytics。我该怎么做呢。
我试过这个
override func viewDidAppear(_ animated: Bool) {
Analytics.logEvent("projects_open", parameters: [:])
}
但我有一种感觉,当我从另一个ViewController回到它时会发生什么。我需要一些能够检测到标签打开时的内容,而不是当它变得可见时。
还有另一个适用于此的功能吗?
答案 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