Как упомянуто в заголовке, у меня проблема с пользовательским 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()