私はログインビューのアプリケーションを持っています。 appDelegateでは、ユーザーがパスワードでアプリケーションをロックしているかどうかを確認します。もしそうなら、彼はログインビューに行きます。フォアグラウンドに入った後すぐに表示される
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = storyboard.instantiateViewControllerWithIdentifier(Views.LoginVC.rawValue)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = nav
self.window?.makeKeyAndVisible()
ログイン後、実際のコンテンツを別のナビゲーションコントローラに表示します。
let vc = self.storyboard?.instantiateViewControllerWithIdentifier(Views.MainVC.rawValue)
let rootVC = UINavigationController(rootViewController: vc!)
self.presentViewController(rootVC, animated: false, completion: nil)
appを終了してもう一度入力すると、ユーザーがパスワードを使用しているかどうかが再度確認されます。はいの場合、最初のコードが再び呼び出されます(コードが呼び出されたことを確認しました)(applicationWillEnterForegroundから呼び出されたコード)。しかし、ログインビューに行くのではなく、メインのコンテンツビューにとどまります。彼が再び離れると、コンソールにエラーメッセージが表示されます。
2016-04-25 20:50:52.714 Point[7222:123809] Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
戻ったときにアプリがログインビューを再度表示するように変更する必要はありますか?そして、このエラーメッセージを避けるにはどうすればいいですか?
UPDATE
私はちょうどapplicationDidBecomeActive代わりのdidFinishLaunchingWithOptionsからコードを呼び出すことによって、私の問題を解決しました。私はそれがなぜそうであるのかわからないが、それは動作する!
ご説明してくれてありがとう、あなたのソリューションは、同じようにうまく動作します。 –