2015-01-24 1 views
-2

Я создаю приложение, которое должно показывать уведомление каждый день в то время, когда пользователь установил через UIDatePicker.Есть ли способ запустить UILocalNotification, когда пользователь выбирает каждый день в Swift?

Мой код из here:

@IBOutlet var myDatePicker: UIDatePicker! 
@IBOutlet var mySwitch: UISwitch! 

var localNotification = UILocalNotification() // You just need one 
var notificationsCounter = 0 

// put your functions now 
func datePicker()   { myDatePicker.datePickerMode = UIDatePickerMode.Time } 
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 
    } else { 
     localNotification.fireDate = NSDate(timeIntervalSinceNow: 999999999999) // will never be fired 
    } 
} 
override func viewDidLoad() { 
    super.viewDidLoad() 
    datePicker() 
    notificationsOptions() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

// here is where you place your IBActions 

@IBAction func switchPressed(sender: AnyObject) { 
    toggleSwitch() 
} 

Но это не работает.

ответ

1

Решил сам. Я случайно установил dateFormatter.dateFormat = "HH:mm:ss" неправильно.

0

Вы можете передать дату и время от date picker до следующего кода,

NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 
//Pass here your values 
[comps setDay:1]; 
[comps setMonth:1]; 
[comps setYear:2013]; 
[comps setHour:10]; 
[comps setMinute:10]; 
[comps setSecond:10]; 
localNotification.fireDate = [[NSCalendar currentCalendar] dateFromComponents:comps]; 

Надежда этот код может помочь вам.

Смежные вопросы