ios - 在应用程序启动时获取在 UITabBarController 中选择的选项卡的标题

标签 ios swift uitabbarcontroller

我正在尝试在应用程序启动时获取选项卡标题。

当用户更改标签时,我可以这样做来读取 tabBarItem.title:

func tabBarController(
        tabBarController: UITabBarController,
        didSelectViewController viewController: UIViewController) {

    UserActivity.trackScreen(name: viewController.tabBarItem.title)

}

此方法不会为初始选择触发。我在 UITabVarControllerviewDidLoad 方法中尝试了这种方法。

override func viewDidLoad() {
    super.viewDidLoad()
    UserActivity.trackScreen(name: self.selectedItem.title) // I think this is not set yet, it is nil.
}

这行不通。

如何在应用程序启动时获取选定的标签栏项目,或者选择的标签栏项目?

最佳答案

在“选定”选项卡上执行操作是首次启动的特殊情况,因为委托(delegate)方法 didSelectViewController 不会触发。

如果(这可能是一个很大的“如果”)您可以假设第一个选项卡是在应用程序启动时选择的选项卡,此代码将用于处理首次启动情况:

    if let vcs = self.viewControllers {
        var firstVC = vcs[0] as UIViewController
        UserActivity.trackScreen(name: firstVC.tabBarItem.title)
    }

这对我有用。接受更好的答案。

关于ios - 在应用程序启动时获取在 UITabBarController 中选择的选项卡的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30303254/

相关文章:

swift - 为什么 SwiftUI 的 View 协议(protocol)使用 PAT?

ios - UITabBar 按钮的图像大小错误

iphone - 选择选项卡时弹出到 Root View

ios - Objective-C项目使用Swift遇到不兼容

swift - 从 UIImagePickerController 中选择的图像未显示在 UIImageView 中

iphone - 区分 iPhone 应用程序崩溃和被杀死

swift - 如何将额外参数传递给自定义 UIView 类以在 swift 中进行初始化

ios - 带有图像和色调颜色的标签栏

iphone - iCarousel 导入图片有困难

ios - 如何在没有 UIDocumentPickerViewController 的情况下访问所有 iCloud 驱动器文件(应用程序容器外部)?