私はストーリーボード内の最初のアプリケーションVCとして設定されたUIViewControllerを拡張する "Splash screen" ViewControllerを持っています。このコントローラーにはログインフォームがあります。「スプラッシュ」UIViewControllerを使用して、条件付きで別のView Controllerにリダイレクトする方法はありますか?
アプリが起動し、画面に何かが表示される前に、このスプラッシュVCでユーザーの既定値を確認して、ユーザーが既にログインしているかどうかを確認します。アプリのホームVC、何かが画面に表示される前にすべて。
ユーザーがログインしていない場合は、スプラッシュVCの読み込みが完了し、ログインフォームが表示されます。
これを実装するにはどうすればよいですか?これらのチェックのすべてをinitメソッドに置くことはできますか?私はスプラッシュVCのinitメソッドのコードを何とか動かすのに苦労していましたが、何らかの理由でこれらのメソッドが呼び出されることはありません。
viewDidLoadメソッドのコードはうまく動作しますが、コードを実行すると、既にログインしているユーザーがホーム画面にアプリをすぐに開始できるようにするという目的を無効にします。
提案?前もって感謝します。
ありがとうございます。意味あり。それは私が問題を抱えていたデザインパターンでした。 – Teddy
すべてのディスパッチブロックはなぜですか? – Teddy
最初の 'dispatch_async'は、ここでプロセスを非ブロック化するためのものです。スプラッシュビューは 'application:didFinishLaunching ... 'が終了するまで表示されないので、データロード操作とlogin-status-checkはバックグラウンドで実行する必要があります。以下の2つの 'dispatch_sync'は、メインキューでUI操作を実行するためのものです。 (UIの操作はメインスレッドで実行する必要があります)このすべてに慣れていない場合は、GCDについて学習することをおすすめします。これは良いチュートリアルです:http://www.raywenderlich.com/4295/multithreading-and-grandcentral-dispatch-on-for-beginners-tutorial – barley