私は、イベントを引き起こすことができるAppDelegateからapplicationWillEnterForegroundが起動すると知っています。私がしたいのは、バックグラウンドから再表示されるときにアプリに特定のビューを表示させることです。ビューは、loginViewControllerと呼ばれるUIViewControllerであり、 "initViewController"のストーリーボードIDを持っています
私の質問は、このアプリケーション(applicationWillEnterForground)で、アプリケーションが再びフォーカスを当てたときにこのビューを読み込むために使用するものですか?ありがとう。swift - バックグラウンドからの復帰後に特定のビューを表示する方法を教えてください。
答えて
私は決してこれをやったことはありませんが、UIViewControllerをUIViewControllerスタックに追加して、ビューコントローラを追加してそのビューを表示したい場合は、(ケース1を参照)またはあなたがしたいことをあなたがのUIViewControllerへの参照を必要とする最初のケースで、ルートビューコントローラは、既存のビューコントローラのスタックを破棄して新しいものを使用する場合(ケース2を参照)
ケース1)親ビューコントローラを作成します。あなたはどこか静的変数でこれを保存することができたり、ちょうどその時、アプリの再起動、一時的なビューを示すことを計画しているならば、あなたは、ルートビューコントローラは、親として使用への参照を取得することができます:
// get a reference to the main storyboard
let mainSB = UIStoryboard(name: "Main", bundle: nil)
// get a reference to the root view controller
if let rootVC = UIApplication.sharedApplication().keyWindow?.rootViewController,
// get a reference to the view controller using identifier
initVC = mainSB.instantiateViewControllerWithIdentifier("initViewController") as? UIViewController {
// present the view controller
rootVC.presentViewController(initVC, animated: false, completion: nil)
}
ます
self.dismissViewControllerAnimated(true, completion: nil)
既存のView Controllerスタックを破棄して置き換えることで、新しいものを開始することができますケース2):それを却下する、と彼らはスタート地点、ユーザーが戻ってする必要がありますビューコントローラ内から使用ロジックを終了しますルートビューコントローラーを開き、手動でスタックを構築します。アニメーションパラメータをfalseに設定して、ビューコントローラを順に表示します。
// get a reference to the main storyboard
let mainSB = UIStoryboard(name: "Main", bundle: nil)
// get references to view controllers
if let vc1 = mainSB.instantiateViewControllerWithIdentifier("vc1") as? UIViewController,
vc2 = mainSB.instantiateViewControllerWithIdentifier("vc2") as? UIViewController {
// set root view controller
UIApplication.sharedApplication().keyWindow?.rootViewController = vc1
// build up the view controller stack by adding next vc
vc1.presentViewController(vc2, animated: false, completion: nil)
}
ナビゲーションコントローラ
ビューコントローラの一つは、あなたがそのようにキャストする必要があり、その後、あなたのナビゲーションコントローラ上に任意のビューコントローラをプッシュしますナビゲーションコントローラである場合。ナビゲーションコントローラには独自のスタックがあります。
if let myNavCon = mainSB.instantiateViewControllerWithIdentifier("nav") as? UINavigationController {
// push view controller onto navigation controller stack
myNavCon.pushViewController(someViewController, animated: false)
}
WARNING
これは、すべてのあなたのアプリのモデル(のみUI)を扱っていません。また、prepareForSegueなどで設定したデータを設定する必要があります。プログラムでもストーリーボードでも表示できるVCがある場合に使用する簡単なシステムは、segueとmoveの準備にあったコードを取ることです子ビューコントローラへの参照をパラメータとして受け取る独自のインスタンスメソッドに渡します。次に、ビューコントローラを表示する前に、デスティネーションビューコントローラまたはコードからセグを準備することから呼び出すことができます。
このコードはテストされていません。それはウェブサイトから直接書かれたものです。おそらくタイプミスを含んでいるでしょう。私は何かを修正できるように私にお知らせください。
- 1. 特定の高さの後にスクロールを表示する方法を教えてください。
- 2. EXC_BAD_ACCESSからの復旧方法を教えてください。
- 3. ボタンを特定の日付の後に隠して表示する方法を教えてください。
- 4. 再帰的にSub-makeから親変数の値を特定する方法を教えてください。
- 5. レスキュー後にフラッシュメッセージを表示する方法を教えてください
- 6. QtWebKitにFlashの表示方法を教えてください。
- 7. Gmailのタブ付きビューの表示方法を教えてください。
- 8. Swiftから別のアプリをクリックする方法を教えてください。
- 9. アイテムを特定のビューから削除する方法を教えてください。
- 10. "tagsinput"の表示方法を教えてください。
- 11. ダウンロードプロセスの表示方法を教えてください。
- 12. Rubocopに特定のディレクトリのみを表示する方法を教えてください。
- 13. 特定のnode_moduleをwebpackにロードする方法を教えてください。
- 14. アンドロイドアプリケーションを特定のNFCチップに聴く方法を教えてください。
- 15. Bootstrap Carouselに特定のインデックスに行く方法を教えてください。
- 16. PHP - 特定の投稿を非表示にする方法を教えてください。
- 17. チャート内の特定のポイントをハイライト表示する方法を教えてください。
- 18. ポイントから消える方法を教えてください。
- 19. テキストビューを表示して消える方法を教えてください。
- 20. MapViewに常にズームコントロールを表示する方法を教えてください。
- 21. スクロール中にウィジェットを表示する方法を教えてください。
- 22. IQKeyboardManagerでUITextFieldを非表示にする方法を教えてください。
- 23. mocha unit testにカスタムエラーメッセージを表示する方法を教えてください。
- 24. Views/Sharedフォルダ内のrazorビューとwebformsビューのMVCを最後に探す方法を教えてください。
- 25. アプリをバックグラウンドでシミュレーションする方法を教えてください。
- 26. タブローを定義する方法を教えてください
- 27. Edge.Funcを固定する方法を教えてください。
- 28. この特定のクラスへのアクセス方法を教えてください。
- 29. クリックした特定のJbuttonの取得方法を教えてください。
- 30. バックグラウンドでのMKMapSnapshotterの使用方法を教えてください。
この回答がストーリーボードの構造とそのUI要素を理解するのにどれだけ役立ったか想像できません。あなたの答えはうまくいって、とても感謝しています! – skrite