1
我們正在尋求改變用戶從我們的應用程序註銷的方式。爲了做到這一點,我們想要關閉當前VC下的所有VC,並將另一個VC放在頂層,作爲根VC。現在我們正在這樣做,我相信不會從內存中解散任何VC。註銷並清除當前VC以下的VC
let viewController = storyboard?.instantiateViewController(withIdentifier: "SignIn")
if let unwrappedViewController = viewController {
self.present(unwrappedViewController, animated: true, completion: {})
}
問題是,我們想放在上面的VC沒有嵌入到導航控制器或標籤欄控制器中。我們如何解僱VC並將新VC設置爲主要VC,就好像用戶第一次打開應用程序而沒有先前登錄過?我們也希望過渡動畫是使用任何正常的動畫(模態動畫都可以)。我已經閱讀了很多不同的方法,但我想知道哪種方式是最佳做法,應該實施,特別是關閉所有VC並將不在Nav控制器中的新VC放在最前面。
問題是我們的根視圖控制器不是導航控制器,所以我們不能使用這些語句。我們的根視圖控制器是一個獨立的VC,它本質上就是我們的加載屏幕,因爲用戶正在使用我們的後端進行身份驗證,以確保它們具有有效的用戶令牌。本質上,它在上面的第二行代碼上失敗。 –
您的根視圖控制器是否呈現以下屏幕?如果是這樣,你可以做'appDelegate.window?.rootViewController.dismiss(animated:true,completion:nil)' – paulvs
這是一個很好的方法嗎? '讓appDelegate = UIApplication.shared.delegate as? AppDelegate else {print(「error 1」);返回}' 'let signInVC = UIStoryboard(name:「Main」,bundle:nil).instantiateViewController(withIdentifier:「SignIn」)''self.present(signInVC,animated:true,completion:{appDelegate.window ?. rootViewController = signInVC})' –