UITabBar странное поведение первой инициализации в симуляторе - PullRequest
1 голос
/ 24 января 2020

Как упомянуто в заголовке, у меня проблема с пользовательским TabBar, когда я инициализирую его в первый раз.

TabBarController имеет пять отношений в раскадровке, и это не контроллер начального представления.

Когда приложение запускается, я устанавливаю TabBarController как rootViewController, но при первом запуске приложения и TabBar не распознает касание, не вызывается didSelect; Перезапустите приложение и 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()
...