インターネットとスタック オーバーフローを検索しましたが、まだこの問題を解決できません。
タブ付きのアプリケーション テンプレートです。
アプリが実行されていないときにプッシュ通知を受信したときに、launchOptions の内容を読み取りたい
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
JSONデータなどを解析することでこれを行います...
次に、これをストーリーボードの別のビューに表示したいと思います。
私はやるべきいくつかの投稿を読みました:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
DetailViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[(UINavigationController*)self.window.rootViewController pushViewController:ivc animated:NO];
しかし、これは私に与えています
*キャッチされない例外 'NSInvalidArgumentException' によるアプリの終了、理由: '-[UITabBarController pushViewController:animated:]: 認識されないセレクターがインスタンス 0x1c5a0c20 に送信されました'
アプリがバックグラウンドで実行されていて、プッシュを受け取ったとき
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)notification
電話する[[NSNotificationCenter defaultCenter] postNotificationName:@"receivedPushNotification" object:self];
これは、現在表示されているビューが何であるかを伝えます
detail = [self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[self.navigationController pushViewController:detail animated:YES];
これは正常に動作します。
問題は、アプリの最初の起動時にこれらのビューが読み込まれないため、appDelegate からユーザー画面に詳細ビュー コントローラーを配置する方法が必要です。
ありがとう