Как контролировать, когда запрашивать у пользователя разрешения на push-уведомления в iOS

Я создал приложение для iPhone, используя Swift и Xcode 6, и инфраструктуру Parse для обработки сервисов.

Следуя инструкциям Parse по настройке push-уведомлений, в инструкциях указывалось, что я помещаю push-уведомления в файл делегата приложения.

Это код, который я добавил в файл делегата приложения ...

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var pushNotificationsController: PushNotificationController?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

         // Register for Push Notifications
        self.pushNotificationsController = PushNotificationController()

        if application.respondsToSelector("registerUserNotificationSettings:") {
            println("registerUserNotificationSettings.RegisterForRemoteNotificatios")
            let userNotificationTypes: UIUserNotificationType = (.Alert | .Badge | .Sound)
            let settings:UIUserNotificationSettings = UIUserNotificationSettings(forTypes: userNotificationTypes, categories: nil)
            application.registerUserNotificationSettings(settings)
            application.registerForRemoteNotifications()
        }

        return true;
    }

    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
        println("didRegisterForRemoteNotificationsWithDeviceToken")
        let installation = PFInstallation.currentInstallation()
        installation.setDeviceTokenFromData(deviceToken)
        installation.saveInBackground()
    }
}

Так что получается, что как только приложение запускается в первый раз, пользователю предлагается предоставить эти разрешения.

То, что я хочу сделать, - это запрашивать эти разрешения только после выполнения определенного действия (т. Е. Во время пошагового ознакомления с функциями приложения), поэтому я могу немного подробнее рассказать о том, почему мы хотим, чтобы они разрешали push-уведомления. ,

Это так же просто, как просто скопировать приведенный ниже код в соответствующий ViewController, где я буду ожидать от пользователя?

// In 'MainViewController.swift' file

func promptUserToRegisterPushNotifications() {
        // Register for Push Notifications
        self.pushNotificationsController = PushNotificationController()

        if application.respondsToSelector("registerUserNotificationSettings:") {
            println("registerUserNotificationSettings.RegisterForRemoteNotificatios")
            let userNotificationTypes: UIUserNotificationType = (.Alert | .Badge | .Sound)
            let settings:UIUserNotificationSettings = UIUserNotificationSettings(forTypes: userNotificationTypes, categories: nil)
            application.registerUserNotificationSettings(settings)
            application.registerForRemoteNotifications()
        }
}

func application(application: UIApplication,    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
        println("didRegisterForRemoteNotificationsWithDeviceToken")
        let installation = PFInstallation.currentInstallation()
        installation.setDeviceTokenFromData(deviceToken)
        installation.saveInBackground()
}

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос