User set time for notification in swift

后端 未结 2 691
长发绾君心
长发绾君心 2020-12-04 03:53
import UIKit
class MyView: UIViewController {
    @IBOutlet var mySwitch: UISwitch!
    @IBOutlet var myDatePicker: UIDatePicker!
    func datePicker() { myDatePicke         


        
相关标签:
2条回答
  • 2020-12-04 04:52

    If you already have the UIDatePicker, all you need to do is grab the date property from it and use it to set the fireDate.

    0 讨论(0)
  • 2020-12-04 04:58
    //
    //  ViewController.swift
    //  Combining Date and Time
    //
    //  Created by Leonardo Savio Dabus on 08/12/2014.
    //  Copyright (c) 2014 inDabusiness.com. All rights reserved.
    //
    
    import UIKit
    
    class ViewController: UIViewController {
    
        // IBOutlet goes here
        @IBOutlet var myDatePicker: UIDatePicker!
        @IBOutlet var mySwitch: UISwitch!
    
        // let = whatever goes here
        // var = whatever goes here
        var localNotification = UILocalNotification()   // You just need one
        var notificationsCounter = 0
    
        // put your functions now
        func datePicker()            { myDatePicker.datePickerMode = UIDatePickerMode.Date }
        func datePickerDefaultDate() { myDatePicker.date = NSDate().xDays(+1)              }
        func notificationsOptions()  {
            localNotification.timeZone = NSTimeZone.localTimeZone()
            localNotification.repeatInterval = .CalendarUnitDay
            UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
            localNotification.alertAction = "Open App"
            localNotification.alertBody = "Here is the seven o'clock notification"
            localNotification.soundName = UILocalNotificationDefaultSoundName
            localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1
            //     you may add arbitrary key-value pairs to this dictionary.
            //     However, the keys and values must be valid property-list types
            //     if any are not, an exception is raised.
            // localNotification.userInfo = [NSObject : AnyObject]?
        }
        func toggleSwitch(){
            if mySwitch.on{
                localNotification.fireDate = myDatePicker.date.fireDate  // combined date = picked Date + 7:00am time
            } else {
                localNotification.fireDate = NSDate(timeIntervalSinceNow: 999999999999)   // will never be fired
            }
        }
        override func viewDidLoad() {
            super.viewDidLoad()
            datePicker()
            datePickerDefaultDate()
            notificationsOptions()
            // Do any additional setup after loading the view, typically from a nib.
        }
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
        // here is where you place your IBActions
    
        @IBAction func switchPressed(sender: AnyObject) {
            toggleSwitch()
    
        }
    }
    

    create a new Swift Source file at your project to put your extensions

    import Foundation
    public extension NSDate {
        func xDays(x:Int) -> NSDate {
            return NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay, value: x, toDate: self, options: nil)!
        }
        var day:            Int { return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitDay,           fromDate: self).day           }
        var month:          Int { return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitMonth,         fromDate: self).month         }
        var year:           Int { return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitYear,          fromDate: self).year          }
        var fireDate: NSDate    { return NSCalendar.currentCalendar().dateWithEra(1, year: year, month: month, day: day, hour: 7, minute: 0, second: 0, nanosecond: 0)! }
    }
    
    0 讨论(0)
提交回复
热议问题