首页 > 解决方案 > UITabBar 奇怪的行为首先在模拟器中初始化

问题描述

正如标题中提到的,我第一次初始化自定义 TabBar 时遇到了问题。

TabBarController 在故事板中有五个关系,它不是初始视图控制器。

当应用程序启动时,我将 TabBarController 设置为 rootViewController,但我第一次启动应用程序时,TabBar 无法识别触摸,没有调用 didSelect;重新启动 App 和 TabBar 正常工作。我没有任何错误或警告日志。

第一次启动和第二次启动时 TabBar 的配置相同。

编辑:这只发生在模拟器中,而不是在真实设备中:我需要解决使用模拟器的 Apple Review。

SplashScreenViewController 是我的初始视图控制器,在这里我验证用户没有登录,而不是我将 LoginViewController 设置为 rootViewController:

    let login = storyboard.instantiateViewController(withIdentifier: "loginStoryboardID") as! LoginViewController
    UIApplication.shared.keyWindow?.rootViewController = login
    UIApplication.shared.keyWindow?.makeKeyAndVisible()

用户登录后,我将 TabBarController 设置为 rootViewController:

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    tabBar = storyboard.instantiateViewController(withIdentifier: "tabBarControllerStoryboardID") as? UITabBarController
    tabBar?.tabBar.layer.borderWidth = 0.0
    tabBar? .tabBar.layer.borderColor = UIColor.clear.cgColor
    tabBar?.delegate = self

    UIApplication.shared.keyWindow?.rootViewController = tabBar
    UIApplication.shared.keyWindow?.makeKeyAndVisible()

标签: iosswiftxcodeuitabbarcontrolleruitabbar

解决方案


推荐阅读