So I am using Swift now and I had one notification appearing at a certain time when one switch was activated.
However I would like another notification to come up at another time when another switch is activated.
Here is my code for ViewController:
@IBOutlet var myDatePicker: UIDatePicker!
@IBOutlet var mySwitch: UISwitch!
@IBOutlet var mySwitchTwo: UISwitch!
var localNotification:UILocalNotification = UILocalNotification()
var localNotificationTwo:UILocalNotification = UILocalNotification()
func datePicker() { myDatePicker.datePickerMode = UIDatePickerMode.Date }
func datePickerDefaultDate() { myDatePicker.date = NSDate().xDays(+1) }
func toggleSwitch(){
if mySwitch.on{
localNotification.alertAction = "Open App"
localNotification.alertBody = "Please take your medication."
localNotification.fireDate = myDatePicker.date.fireDate
localNotification.repeatInterval = NSCalendarUnit.CalendarUnitDay
localNotification.timeZone = NSTimeZone.localTimeZone()
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
} else {
localNotification.alertAction = "Open App"
localNotification.alertBody = "This notification should not appear"
localNotification.fireDate = NSDate(timeIntervalSinceNow: 999999999999)
}
}
func toggleSwitchTwo() {
if mySwitchTwo.on{
localNotification.alertAction = "Open App"
localNotification.alertBody = "Please take your medication."
localNotification.fireDate = myDatePicker.date.fireDateTwo
localNotification.repeatInterval = NSCalendarUnit.CalendarUnitDay
localNotification.timeZone = NSTimeZone.localTimeZone()
UIApplication.sharedApplication().scheduleLocalNotification(localNotificationTwo)
} else {
localNotification.alertAction = "Open App"
localNotification.alertBody = "This notification should not appear"
localNotification.fireDate = NSDate(timeIntervalSinceNow: 999999999999)
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func switchPressed(sender: AnyObject) {
toggleSwitch()
}
@IBAction func switchPressedTwo(sender: AnyObject) {
toggleSwitchTwo()
}
}
Here is the first swift file with the time for first switch:
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: 8, minute: 0, second: 0, nanosecond: 0)! }
}
And I would like the next notification time at 1 PM. Here is the swift file I made for that:
import Foundation
public extension NSDate {
func xDaysTwo(x:Int) -> NSDate {
return NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay, value: x, toDate: self, options: nil)!
}
var dayTwo: Int { return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitDay, fromDate: self).day }
var monthTwo: Int { return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitMonth, fromDate: self).month }
var yearTwo: Int { return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitYear, fromDate: self).year }
var fireDateTwo: NSDate { return NSCalendar.currentCalendar().dateWithEra(1, year: year, month: month, day: day, hour: 13, minute: 0, second: 0, nanosecond: 0)! }
}
I am having problems with it and would really appreciate your help, thanks in advance!
Extensions: