在swift中单击remotepush通知时调用特定的View Controller

时间:2017-04-26 06:15:33

标签: swift ios10.3

我想在点击通知时显示特定视图控制器中的推送通知,并且还希望将数据从通知发送到视图控制器。我正在使用swift进行开发

2 个答案:

答案 0 :(得分:0)

你应该为你的视图控制器实现路由器,它将监听从app delegate发送的通知,他将决定做什么。我就是这样做的,可能是更好的解决方案。

答案 1 :(得分:0)

正如@luzo指出的那样,通知是发送事件发生时与视图控制器进行通信的方式。该通知还有一个userinfo参数,该参数接受您希望与通知一起发送到视图控制器的数据字典。

在Swift 3中,将其添加到点击按钮:

let center = NotificationCenter.default
center.post(name: Notification.Name(rawValue: "nameOfNotification"),
                    object: nil,
                    userInfo:["id":"data"])

在viewcontroller中,注册通知的id并添加一个函数引用:

    let center = NotificationCenter.default
    center.addObserver(forName:NSNotification.Name(rawValue: "nameOfNotification"), object:nil, queue:nil, using:notifDidConnect)

并添加函数实现:

 func notifDidConnect(notification:Notification) -> Void {
        guard let userInfo = notification.userInfo,
            let id  = userInfo["id"] as? String else {
               print("error occured")
               return
             }
        print("notification received")
    }