ユーザーが私たちのアプリからログアウトする方法を変更しようとしています。これを行うために、現在の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を上に配置する必要があります。
私たちのルートビューコントローラはNavコントローラではないため、これらのステートメントは使用できません。私たちのルートビューコントローラはスタンドアロンのVCであり、ユーザが有効なユーザトークンを持っていることを確認するためにバックエンドで認証されているため、本質的にローディング画面です。基本的には、上記の2行目のコードでは失敗しています。 –
ルートビューコントローラは、次の画面を表示していますか?もしそうなら 'appDelegate.window?.rootViewController.dismiss(アニメーション:true、完了:なし)' – paulvs
はこれを行う良い方法ですか? 'guardをappDelegate = UIApplication.shared.delegateとしましょう? AppDelegate else {print( "エラー1"); (signInVC、animated:true、completion:{appDelegate.window ?.)}。}}}}}}}}}}}}}}}}}}}}}}}}}}}}}である。 rootViewController = signInVC}) ' –