私のアプリケーションでは、viewControllerがUIWebViewを管理します。アプリケーションのメインストーリーボードで作成されます。このアプリは、rtfメールの添付ファイルを開いて、UIWebViewに表示することができます。
アプリケーションがバックグラウンドにある場合、すべてがOKです。アプリケーションデリゲートメソッド
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
が呼び出され、そこにメソッドがあります
[viewController loadImportedRTFDocument:url];
と呼ばれます。コントローラがドキュメントをロードして表示します。
ユーザーがメールアプリで添付ファイルを選択したときにアプリケーションがバックグラウンドにない場合、アプリケーションは正しく起動します。アプリデリゲートopenURLが呼び出され、viewControllerはインポートされたドキュメントをロードするためのメッセージを受信します。ただし、UIWebViewが割り当てられていないため、表示できません(nilポインターを返します)。
私が観察したのは、コントローラーがviewDidLoadメッセージを受信する前にアプリデリゲートによって呼び出されるメソッドが作成されることです...
この状況でviewControllerが正しく初期化されていることを確認するにはどうすればよいですか?また、UIWebViewにrtf添付ファイルに関連付けられたNSDataオブジェクトをロードするように依頼する必要がありますか?