如何在AppDelegate外注册推送通知?

时间:2016-07-18 19:24:58

标签: ios swift push-notification apple-push-notifications appdelegate

我已经设置推送通知并在appdelegate中工作,但是一旦应用程序打开,我就不希望它们启动,我希望它们在用户注册之后在单独的“允许推送通知”视图控制器上启动应用程序。我尝试通过这样做来引用appDelegate

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

我在registerForPushNotifications中有一个appDelegate函数:

func registerForPushNotifications(application: UIApplication) {
    let notificationSettings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories: nil)
    application.registerUserNotificationSettings(notificationSettings)
}

当从didFinishLaunchingWithOptions中的AppDelegate函数中调用时有效,但是当我尝试在我的视图控制器上调用该函数时,我没有任何内容可以传递给应用程序部分功能,所以我最终得到一个错误。

@IBAction func yesButtonPressed(sender: AnyObject) {
    appDelegate.registerForPushNotifications(application)
    performSegueWithIdentifier("pushToHomeSegue", sender: self)
}

1 个答案:

答案 0 :(得分:5)

您确定没有任何内容可以传递给application吗?

appDelegate.registerForPushNotifications(UIApplication.sharedApplication())