Como controlar quando solicitar ao usuário permissões de notificação por push no iOS

Criei um aplicativo para iPhone usando o Swift e o Xcode 6 e a estrutura Parse para lidar com serviços.

Ao seguir os tutoriais do Parse sobre como configurar notificações por push, as instruções recomendam que eu coloque as notificações por push no arquivo App Delegate.

Este é o código que eu adicionei ao arquivo App Delegate ...

@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()
    }
}

Então, o que acontece é que, assim que o aplicativo é iniciado pela primeira vez, o usuário é solicitado a conceder essas permissões.

O que eu quero fazer é solicitar apenas essas permissões após uma determinada ação (por exemplo, durante uma explicação dos recursos do aplicativo), para que eu possa fornecer um pouco mais de contexto sobre por que queremos que eles permitam notificações por push .

É tão simples quanto copiar o código abaixo no ViewController relevante, onde esperarei solicitar ao usuário?

// 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()
}

obrigado!

questionAnswers(3)

yourAnswerToTheQuestion