如何在iOS swift中创建自定义通知中心

时间:2017-06-16 12:12:21

标签: ios notificationcenter

我是ios的新手,我想在ios中播放一些动作我们有通知中心使用这个我可以在特定的控制器中发布和接收但我的要求是在Android我们有广播接收器类似我想创建自定义通知中心ios如果我先发送一些动作它接收然后打开特定的视图控制器。我创建了自定义通知中心,但它没有触发。

代码:

NotificationCenter.default.post(name: Notification.Name(rawValue: "key"), object: nil)
class MainReceiver: NotificationCenter
{
    override func post(name aName: NSNotification.Name, object anObject: Any?)
    {
        print("coming here")
    }

}

2 个答案:

答案 0 :(得分:0)

在您的示例中,您已发布到默认通知中心。由于该通知中心不是MainReciever的实例,因此不会覆盖它的功能。

为了使这项工作,您应该创建自己的MainReciever单例实例,并将您的帖子发送到MainReciever中的该实例。

有关如何创建单身人士的信息,请访问: Singleton with Swift 3.0

答案 1 :(得分:0)

(我现在它有点老了,但它可能会有所帮助。)

如果您创建自定义“默认”,则可以轻松使用您的代码:

public extension NotificationCenter {
   class var `myCenter`: NotificationCenter {
      return MainReceiver.sharedInstance
   }
}

修改您收到的类以添加一个共享实例:

public class MainReceiver: NotificationCenter {
   public static let sharedInstance: MainReceiver = {
       MainReceiver()
   }()
}

然后调用:

NotificationCenter.myCenter.post(name: Notification.Name(rawValue: "key"), object: nil)