2017-05-11 12 views
0

私のアプリケーションでは、View Controllerが3つあり、MainVC、ObjectsVC、およびEventsVCと呼ばせてください(このようなショートカットが気に入らないのならごめんなさい)。 MainVCはアプリ全体の初期VCで、残りはいくつかのオブジェクトを含むリストを含むTableVCです。 ID = 0 - - ID = 2 - - >アプリEventsVCで始まるID = 1 - -
>はアプリObjectsVCで始まる>アプリ
が正常に起動する
は:
は、このアプリは、 "ID" フィールドが付属してプッシュ通知をサポートしています
ユーザが着信PNをタップすると、上記の遷移をどのように達成できますか?ユーザーは、受信したプッシュ通知をタッチしてアプリケーションを開きます。

答えて

2

経由で通知IDを取得することができます

(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler; 

を使用してみてください簡単な方法は、初期viewControllerに戻りますし、目的の1をプッシュするだろう。例えば:場合

if id == 2 { 
    let eventsVc = EventsVC() 
    navigationController?.popToRootViewController(animated: false) 
    navigationController?.pushViewController(eventsVc, animated: false) 
} 

希望viewControllerは、ナビゲーションスタックに既にある、あなたはそれが本当にありますチェックする必要があり、それにpop

本当に目的のナビゲーション動作によって異なります。

+0

MainVCとObjectsVCの間にさらに多くのビューがある場合はどうなりますか? – mcgtrt

0

あなたはnotification.request.content.userInfo

関連する問題