我已经设置推送通知并在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)
}
答案 0 :(得分:5)
您确定没有任何内容可以传递给application
吗?
appDelegate.registerForPushNotifications(UIApplication.sharedApplication())