Представление контроллеров представления на независимых контроллерах представления не рекомендуется (выход из системы и вход в систему)
В настоящее время я работаю над возможностью выхода и повторного входа в приложение для iOS. Пользователь может выйти из системы, нажав на кнопку выхода из системы, которая имеет следующую логику:
let loginController = LoginController()
self.present(loginController, animated: true)
Затем в LoginController's viewDidLoad()
Я реализую следующий код для удаления всех оставшихся представлений, чтобы не было никакой логики при входе в систему с другой учетной записью:
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.