В настоящее время я работаю над возможностью выхода и повторного входа в приложение iOS.Пользователь может выйти из системы, нажав на кнопку «Выйти», которая имеет следующую логику:
let loginController = LoginController()
self.present(loginController, animated: true)
Затем в viewDidLoad()
в LoginController я реализую следующий код, чтобы удалить все оставшиеся представления, чтобы не былоЛогика осталась при входе в систему с другой учетной записью:
UIApplication.shared.keyWindow?.rootViewController?.dismiss(animated: false, completion: nil)
Затем за кнопкой входа в систему я использую этот код для загрузки UITabBarController
(который является корневым контроллером представления при входе в систему) снова:
let tabBarController = TabBarController()
self.present(tabBarController, animated: true, completion: nil)
Все это прекрасно работает.Я могу выйти из системы, получить экран входа в систему и после ввода новых учетных данных войти в систему и использовать приложение с новой учетной записью.Однако мой отладчик возвращает следующие предупреждения:
Presenting view controllers on detached view controllers is discouraged <HomeViewController: 0x7fc2e3a52400>.
Presenting view controllers on detached view controllers is discouraged <SideMenuController: 0x7fc2e286aa00>.
HomeViewController
является корневым контроллером представления за UITabBarController
, а SideMenuController
является UIViewController
, показанным за модулем SideMenu от jonkykong.Для справки - я не использую синглтон по умолчанию, а вместо этого инициализирую новый SideMenuManager
всякий раз, когда я вхожу в систему, и устанавливаю его как SideMenuManager
внутри нового UITabBarController
.
Любые идеио том, как я могу предотвратить это предупреждение?Меня это не сильно беспокоит, поскольку приложение работает отлично, как я собираюсь, но я боюсь, что оно может быть отклонено или стать ошибкой в более поздней версии iOS.