Представление контроллеров представления на независимых контроллерах представления не рекомендуется (выход из системы и вход в систему) - PullRequest
0 голосов
/ 17 февраля 2019

В настоящее время я работаю над возможностью выхода и повторного входа в приложение 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.

...