我正在尝试使用 iOS 10 UserNotifications 框架来做一些非常基本的事情:选择默认操作时打开特定的 ViewController。我已经阅读了许多教程,但它们都专注于自定义类别和操作,并且它们也没有真正显示在确定操作后启动特定 ViewController 的代码(这只是作为评论或打印留下陈述)。
我想做两件事之一,这取决于可能的情况:
- 实例化并显示一个模式 ViewController,它不是故事板的初始视图控制器,或者
- 显示初始 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()
}
}