gpt4 book ai didi

ios - 如何仅为某些 UIViewControllers 启用前台通知?

转载 作者:行者123 更新时间:2023-12-01 18:03:55 25 4
gpt4 key购买 nike

我只想在前台显示一些选定的 UIViewControllers 的通知。

但是当我将 NotificationCenter 设置为在前台接收特定 UIViewController 的通知时,Swift 会在全局范围内执行此操作。在某些屏幕中,我不想看到通知出现在前台,为此我必须在每个屏幕中指定是否在前台显示通知,这会导致很多代码通常不受管理。

最佳答案

您可以将条件放在通知委托(delegate)方法中以显示或不显示特定 View Controller 的通知。

@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

let navigationController: UINavigationController = self.window?.rootViewController as! UINavigationController

if (navigationController.topViewController is FirstViewController) || (navigationController.topViewController is SecondViewController) {

//Show notification for First and Second ViewController
completionHandler([.alert, .badge, .sound])
}
else {
//Do whatever when you don't want to show notification
}
}

我希望这对你有帮助......

关于ios - 如何仅为某些 UIViewControllers 启用前台通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59611619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com