アップルによると、スプリットビューは常にアプリケーションのライフタイムを通じてルートビューコントローラーである必要があります。ログアウト後にルートビューコントローラをリロードする方法は?
いつでも私がアカウントからログアウトすると、詳細ビューコントローラのデータをリロードする唯一の方法は、ユーザーがログアウトした場合にログインコントローラをルートビューコントローラにしてから、再度ルートビューコントローラを起動します。私は上記のやったことをやってなければ
// if the user is not logged in
if FIRAuth.auth()?.currentUser?.uid == nil {
window?.rootViewController = UINavigationController(rootViewController: LoginController())
} else {
// If the user is logged in, show the main controller
window?.rootViewController = UINavigationController(rootViewController: MainController(collectionViewLayout: UICollectionViewFlowLayout()))
}
:
これは一例であり、私がログアウトした場合、ログインのビューは、モーダル自身を提示します。別のアカウントにサインインして、ログイン・コントローラーをモーダルに却下した場合、スプリット・ビューは最後のアカウントから同じように見えます。だから私は再ログイン時にスプリットビューが更新されるようなアニメーションをコントローラに記録する方法や技術がありますか?私はガイドラインに従っていることを確認したい。
(注:。。スプリットビューの詳細ビューコントローラのルートがUICollectionViewControllerである私は、プログラムでこのすべてをやっている)
'self.mainController'はUINavigationController型ですか? 'var mainController:UINavigationController? 'のように –
また、rootViewControllerクラス内にシングルトンインスタンスを持つことはお勧めできませんか? –
最初の質問:私はUIViewControllerを好む、私はこの目的のためのUINavigationControllerの利点を見ることはないので、ルートビューコントローラを持っている必要があります。しかし、それは私のニーズに基づいた個人的な決定です。 2番目の質問:ルートコントローラーは単一インスタンスですが、シングルトーンではありません。それは...ですか? – MCMatan