jeudi 4 janvier 2018

userNotification not going off with datePicker (swift4)

My code uses a datePicker and prints successT when the datePicker matches with what the user selected. However the userNotification does not appear and is never called when the word successT is printed in the log file which is how I would like it

    import UIKit
import UserNotifications
class ViewController: UIViewController {
var timer = Timer()
    var passingDate : Date?
@IBOutlet var dptext: UITextField!
let datePicker = UIDatePicker()

override func viewDidLoad() {
    UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.sound,.badge]) { (didAllow, error) in

    }
    createDatePicker()
    timer  = Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(ViewController.testDate), userInfo: nil, repeats: true)
}
    func createDatePicker() {
        datePicker.datePickerMode = .dateAndTime
        let toolbar = UIToolbar()
        toolbar.sizeToFit()

        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed))
        toolbar.setItems([doneButton], animated: false)

        dptext.inputAccessoryView = toolbar
        dptext.inputView = datePicker


    }
    @objc func testDate() {
        if Calendar.current.isDate(datePicker.date, equalTo: Date(), toGranularity: .minute) {
            print("successT")

            passingDate = datePicker.date
            let content = UNMutableNotificationContent()
            content.title = "3 seconds are up"

            let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)
            let request = UNNotificationRequest(identifier: "timerDone", content: content, trigger: trigger )

            UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)



        }
    }


    @objc func donePressed() {

        let dateFormatter = DateFormatter()
        dateFormatter.dateStyle = .short
        dateFormatter.timeStyle = .short
        dptext.text = dateFormatter.string(from: datePicker.date)
        self.view.endEditing(true)

    }
    }

Aucun commentaire:

Enregistrer un commentaire