iOS 10 UserNotifications フレームワークを使用して、非常に基本的なことをしようとしています。デフォルトのアクションが選択されているときに特定の ViewController を開きます。私は多くのチュートリアルを経験してきましたが、それらはすべてカスタム カテゴリとアクションに焦点を当てており、アクションを決定した後に特定の ViewController を起動するためのコードも実際には示していません (これは単にコメントまたは印刷として残されています)。声明)。
可能なことに応じて、次の2つのいずれかを実行したいと考えています。
- ストーリーボードの初期ビュー コントローラーではないモーダル ビュー コントローラーをインスタンス化して表示する、または
- 最初のViewControllerを表示しますが、最初にいくつかの情報を挿入して、この情報を使用して次にどのViewControllerにセグエするかを決定できるようにします。
私の AppDelegate は、自身を UNUserNotificationCenterDelegate として設定します。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Make this object responsible for handling notification events.
UNUserNotificationCenter.current().delegate = self
return true
}
そして、次を使用して、選択されている ViewController をオーバーライドします。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
switch response.actionIdentifier {
case UNNotificationDismissActionIdentifier:
// Notification was dismissed. Do nothing.
completionHandler()
case UNNotificationDefaultActionIdentifier:
// App opened from notification.
// ??? Select ViewController to show based on information found in the notification ???
completionHandler()
default:
completionHandler()
}
}