我目前正在尝试注销并再次在我的iOS应用中登录的功能。用户可以通过单击具有以下逻辑的注销按钮来注销:
let loginController = LoginController()
self.present(loginController, animated: true)
然后,在LoginController的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
是SideMenu module from jonkykong后面显示的UIViewController
。作为记录-我不使用默认的单例,而是每当我再次登录时都初始化一个新的SideMenuManager
并将其设置为新SideMenuManager
中的UITabBarController
。>
关于如何防止此警告的任何想法?该应用程序可以按我期望的那样完美运行,这并没有让我感到困扰,但是我担心它可能会被拒绝或在更高的iOS版本中出错。