2012-05-03 2 views
0

受信ローカル通知の処理には多くの問題があります。 私のアプリはストーリーボードを使用しており、rootviewcontrollerとしてtabbarcontrollerを持っています。 は現在、私は次のように「didReceiveLocalNotification」からmodalviewsを起動します。通知に応じてモーダルビューを新しいウィンドウとして表示するにはどうすればよいですか? (親なしvc)

MedicationReminderViewController *vc = [[MedicationReminderViewController alloc] initWithNibName:@"MedicationReminderViewController" bundle:nil]; 
    vc.notificationInfo = [[NSDictionary alloc] initWithDictionary:notification.userInfo]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc]; 
    navController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
    navController.title = @"title"; 

    UITabBarController *tc = (UITabBarController *)self.window.rootViewController; 
    UINavigationController *nc = (UINavigationController *)tc.selectedViewController;  
    [[nc visibleViewController] presentModalViewController:navController animated:YES]; 

これは、すべての行事に動作しますが、ありません。私はその時に表示されることができる他のものの上に新しいウィンドウでモーダルビューを提示したいと思います。ユーザーが着信通知を処理すると、モーダル表示が自動的に閉じられ、通知が届く前にアクティブだった基になるビューが再び表示されます。どうすればこれを達成できますか?

答えて

0

windowオブジェクトのAppDelegateで行います。私はあなたがそこでそれをできると信じています。 私の頭の上から、私はそのwindow.rootViewControllerを信じています。しかし確信しています。

実行方法: あなたのUILocalNotificationを受け取ったら、それをAppDelegateで受け取ることができます。通知が「到着」したら、self.window.rootViewControllerpresentModalViewControllerを使用します。

更新docから
:システムが通知を 配信するとき、アプリケーションが最前面と表示されている場合

は、全く警告が示されていない、何のアイコンバッジず、無音 であります演奏された。ただし、application:didReceiveLocalNotification:は、アプリケーションデリゲートが実装する場合に呼び出される です。 UILocalNotificationインスタンスがこのメソッドに渡され、 デリゲートは、そのプロパティを確認したり、 userInfo辞書からカスタムデータにアクセスできます。

application:didReceiveLocalNotification:メソッドを使用してください。私はあなたの質問に答えたことを願っています

+0

どのように "それを行う"私の質問です:) – Pieter

+0

私の答えを更新しました。 –