2017-07-17 5 views
-1

Ich möchte, dass meine Benutzerbenachrichtigung angezeigt wird, wenn der Benutzer die Aktion datePicker verwendet, um ein Datum und eine Uhrzeit für die Anzeige der Benachrichtigung auszuwählen.Verwenden Sie DatePicker zum Planen der Benachrichtigung (swift3)

import UIKit 
import UserNotifications 

class ViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
     } 

@IBAction func datePicker(_ sender: Any) { 
} 
@IBAction func disaper(_ sender: Any) { 

    let c = UNMutableNotificationContent() 
    c.title = "Lets Roll" 
    c.subtitle = "dx" 
    c.body = "fyb" 

    let t = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) 
    let r = UNNotificationRequest(identifier: "any", content: c, trigger: t) 

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

}} 
+0

Ok, Sie möchten eine Datumsauswahl verwenden. Erläutern Sie weiter, wie sich der von Ihnen gepostete Code auf Ihr angegebenes Ziel bezieht. –

+0

Wenn der datePicker von seinem ursprünglichen Datum geändert wird, möchte ich eine Benachrichtigung geplant werden, solange es ein zukünftiges und nicht nach Datum und Uhrzeit ist. –

+0

Ok, und was hast du probiert? Was ist der Code, den Sie gepostet haben, und wie wird er Ihren Anforderungen nicht gerecht? –

Antwort

0

Wenn Sie eine Benachrichtigung planen möchten ein genauer Termin geliefert werden, müssen Sie UNCalendarNotificationTrigger statt UNTimeIntervalNotificationTrigger verwenden. Sie sollten auch ein Outlet für die DatePicker einrichten, um das Einrichten des Benachrichtigungsauslösers zu erleichtern.

let triggerDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: datePicker.date) 
let t = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false) 
+0

Wie deklariere ich datePicker.date? –

+0

Wie ich in meiner Antwort erwähnt habe, müssen Sie nur ein 'IBOutlet' für Ihren' DatePicker' einrichten. Ich nahm an, dass das IBOutlet "datePicker" heißen würde. –

+0

Hat das aber ein Problem mit .date. Die Fehlermeldung besagt "Wert des Typs 'Datum' kann nicht in den erwarteten Argumenttyp 'DateComponents' konvertiert werden. –

Verwandte Themen