Здравствуйте.
Создаю приложение с помощью storyboard, так же есть xib файл с одноименным swift-файлом (UIView) PlayerDetailsView. Есть аутентификация пользователя.
В приложении вызываю некую функцию minimizePlayerDetails() из MainTabBarController с помощью
let mainTabBarController = UIApplication.shared.keyWindow?.rootViewController as? MainTabBarController
mainTabBarController?.minimizePlayerDetails()
Фукция minimizePlayerDetails() ссылается на PlayerDetailsView, который в свою очередь вызывается следующим способом
Bundle.main.loadNibNamed("PlayerDetailsView", owner: self, options: nil)?.first as! PlayerDetailsView
В AppDelegate записано следующее
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
self.window = UIWindow(frame: UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateViewController(withIdentifier: "TabBarController")
print(initialViewController)
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
return true
}
TabBarController это ID экрана MainTabBarController с одноименным классом.
Все работает, но как только пользователь выходит из профиля и отправляется на экран ввода логина и пароля с помощью
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let singInVC = storyboard.instantiateViewController(withIdentifier: "NavigationLoginViewController")
self.present(singInVC, animated: true, completion: nil)
, то есть по суть в самое начало приложения, PlayerDetailsView перестает срабатывать. Экран с id NavigationLoginViewController находится до экрана с id TabBarController.
Перезапускаю приложение и все опять работает до моменты выхода из профиля. Есть подозрение, что проблема в реализации этого метода в связке с AppDelegate
let mainTabBarController = UIApplication.shared.keyWindow?.rootViewController as? MainTabBarController
mainTabBarController?.minimizePlayerDetails()
Подскажите, как можно побороть этот баг?
Если что-то описано сумбурно, дополню пояснениями