Ios 在前台的特定视图控制器中禁用推送通知?

Ios 在前台的特定视图控制器中禁用推送通知?,ios,swift,apple-push-notifications,Ios,Swift,Apple Push Notifications,我正在应用程序中实现聊天功能。现在每次推送,我都会在使用应用程序时使用此按钮显示通知: func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

我正在应用程序中实现聊天功能。现在每次推送,我都会在使用应用程序时使用此按钮显示通知:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    completionHandler([.alert, .badge, .sound])
}
我想知道,在维护特定视图控制器的蜂鸣器的同时,是否可以禁用顶部显示的推送通知


如果是,我应该做什么来创建它?

像这样实现它:

UNUserNotificationCenter.current().delegate = self

...

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    if wantToShow {
         completionHandler([.alert, .sound])
    } else {
         completionHandler([])
    }
}

然后根据当前状态更改
wantToShow

如果我使用
completionHandler([]),则不会调用didReceiveEmotentification
函数。您找到解决方案了吗?Shu khan回答对我有效