2017-03-05 7 views
0

私のアプリでは、別々の時刻に複数のローカル通知を受信して​​います。私は受信したローカル通知に応じて、自分のアプリケーション用に異なるView Controllerを起動したいと思います。私はdidfinishlaunchingとdidreceive通知の起動オプションについて知っていますが、どの通知を受け取ったかを検出し、受信した通知に従って処理を行う方法はわかりません。私がそれをしても、問題は私がビューを開くことができることですコントローラをアプリケーションデリゲートから削除しますが、ストーリーボードに接続されていないナビゲーションコントローラに接続されなくなりました。どうやってするか? Heres私のコード:ios 10でさまざまなローカル通知用に異なるView Controllerを起動する方法

func application(_ application: UIApplication, didReceive notification: UILocalNotification) { 


     let storyboard = UIStoryboard(name: "Main", bundle: nil) 

     let customViewController:WebViewController = storyboard.instantiateViewController(withIdentifier: "webVC") as! WebViewController 

     let index=Constants.instructionsData.count - 1 
     customViewController.url=Constants.instructionsData[index].weblink! 
     self.window = UIWindow(frame: UIScreen.main.bounds) 
     self.window?.rootViewController = customViewController 
     self.window?.makeKeyAndVisible() 

    } 

答えて

0

私はあなたがUNNotificationを使いたいと思うので、あなたはiOS 10で通知を使いたいと思います。 UNNotificationRequestを使用するときには、identifierという引数があります。この通知を使用して、この通知を送信する通知を区別することができます。 "古い"通知を使用する場合、通知を受け取ったときに実行されるセレクタを与えるだけです。

編集: あなたのコードでは、ルートビューコントローラを変更していますので、どのようにナビゲーションコントローラを使いたいですか?あなたはセグを使用していません。 試し:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let customViewController:WebViewController = storyboard.instantiateViewController(withIdentifier: "webVC") as! WebViewController 
self.window?.rootViewController?.navigationController?.pushViewController(customViewController, animated: true) 
+0

response.notification.request.identifier –

+0

を識別子を取得するための方法であり、私はそれを行うために管理し、問題は、私は開くことができるだということは何かアプリケーションデリゲートのビューコントローラですが、ストーリーボードに接続されていないナビゲーションコントローラにはもはや接続されていません。どうやってするか? – Axel

+0

メイトを試すdidreceive通知で通知から –

関連する問題