具体的には、メインのView Controllerで通知を登録する前にdidFinishLaunchingWithOptions
、「スプラッシュ」(Ob-Cオタクを許してください、実際に何と呼ばれるか忘れてしまいました)画面からタスクを実行できるようにします。
[[[[[[UIApplication sharedApplication] delegate] window] rootViewController] topViewController] functionIwantToCallOnceAtTheStart];
補足: 「グローバル スタート ホイッスル」のアイデアが気に入っていますが、これがデフォルトではないのはなぜですか?
ロギングdidFinishLaunchingWithOptions
とルート ビュー コントローラーのデリゲート メソッドにより、
2013-07-25 02:02:46.532 Tests[918:c07] awakeFromNib
2013-07-25 02:02:46.535 Tests[918:c07] didFinishLaunchingWithOptions
2013-07-25 02:02:46.538 Tests[918:c07] viewDidLoad
2013-07-25 02:02:46.539 Tests[918:c07] viewWillAppear
2013-07-25 02:02:46.540 Tests[918:c07] viewWillLayoutSubviews
2013-07-25 02:02:46.543 Tests[918:c07] viewDidLayoutSubviews
2013-07-25 02:02:46.544 Tests[918:c07] viewWillLayoutSubviews
2013-07-25 02:02:46.545 Tests[918:c07] viewDidLayoutSubviews
2013-07-25 02:02:46.549 Tests[918:c07] viewDidAppear
awakeFromNib
しかし、常に didFinishLaunchingWithOptions の前に来て、すべての iOS デバイス/バージョンで来ることが保証されていますか?
この質問には役立つ回答がありますが、私のプロジェクトはストーリーボードを使用しており、ストーリーボードを使用して rootViewController を手動で設定することの意味がわかりません。
編集:
最初にこの質問をしたのは、起動イメージをアニメーション化したかったからです。これを行うためのより良い方法があることは理解していますが、アプリが開始されるとすぐに、「アプリケーション開始」通知を使用してネットワーク要求を起動し、メイン ビュー コントローラー (UITableViewController) にデータを入力したいと考えています。