Thursday, June 4, 2015

scheduleLocalNotification - Location Notification

This is a simple local notification tutorial. Refer to the official programming guide for further details.

1. Disable 'Use Auto Layout' in the storyboard file inspector.

2. Drag a button to the storyboard and name it 'Start Notification'.

3. Control-drag the button to ViewController.swift:

    @IBAction func myButton(sender: UIButton) {


4. Modify the code in ViewController.swift as below:

import UIKit

class ViewController: UIViewController {

    @IBAction func myButton(sender: UIButton) {
        var myNotification = UILocalNotification()
        myNotification.applicationIconBadgeNumber = 1
        myNotification.soundName = UILocalNotificationDefaultSoundName
        myNotification.alertBody = "Alert!"
        myNotification.fireDate = NSDate(timeIntervalSinceNow: 5)
    override func viewDidLoad() {

5. Register notification types (user notification settings) by modifying the function application in AppDelegate.swift as below:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        let myNotificationType = UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound
        application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: myNotificationType, categories: nil))
        return true

    Note:  registerForRemoteNotificationTypes is deprecated in iOS8. Use registerUserNotificationSettings instead.

6. Run the app and see this alert window:

7. Press OK and see this: 

8. Press 'Start Notification' button and press the Home key. Then the notification is displayed after the 'Start Notification' button is press for 5 sec:

9. The badge number becomes one.

10. Add the code below to AppDelegate:

    func applicationWillEnterForeground(application: UIApplication) {
        //This clears the badge number
        UIApplication.sharedApplication().applicationIconBadgeNumber = 0


11. Now the badge number is cleared and the icon is restored to:

No comments:

Post a Comment