2012-04-05 224 views
0

嗨,大家好,我有一個問題設定日期選擇器

我我的代碼設置與今天的日期日期選擇器,之後,如果用戶改變選擇器我設置一個報警的日期響選擇器。

如何在這些日期「阻止選取器」?

這裏我的代碼,我希望在您的幫助下

NSDate *pickerDate = [NSDate date]; 

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar]; 


// Divisione della data in fattori 
NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) 
               fromDate:pickerDate]; 
NSDateComponents *timeComponents = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) 
               fromDate:pickerDate]; 
// Set Up dell'alarme considerando tutti i fattori 
NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 
[dateComps setDay:[dateComponents day]]; 
[dateComps setMonth:[dateComponents month]]; 
[dateComps setYear:[dateComponents year]]; 
[dateComps setHour:[timeComponents hour]]; 
[dateComps setMinute:[timeComponents minute]]; 
//Notifica in meno di un minuto 
[dateComps setSecond:0]; 
NSDate *itemDate = [calendar dateFromComponents:dateComps]; 
[dateComps release]; 
[alarmDatePickerUno setDate:itemDate animated:YES]; 
[alarmDatePickerDue setDate:itemDate animated:YES]; 

    } 


// ALARM UNO 
// Set Allarme Uno 

-(IBAction)setAlarmUno:(id)sender{ 

NSLog(@"picker in allarme"); 

NSCalendar *currentCalendar = [NSCalendar currentCalendar]; 

//Setting dell'allarme in base al picker 
AlarmDateUno = [alarmDatePickerUno date]; 
NSLog(@"allarme settata alle"); 
NSLog(@"%@", AlarmDateUno); 

回答

1
alarmDatePickerUno.userInteractionEnabled = NO; 
alarmDatePickerDue.userInteractionEnabled = NO; 

編輯澄清後

如果你想使用的應用程序啓動之間的日期,你需要以某種方式繼續存在的日期。我建議使用NSUserDefaults,但您也可以選擇更復雜的Core Data解決方案。使用NSUserDefaults,您每次創建UIDatePicker時都會檢查保存的值,並使用它來初始化選取器。

// Get the date 
NSDate *unoDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"PickerUnoKey"]; 
if (unoDate) { // If we have a persisted date, we set the date of the datePicker 
    [alarmDatePickerUno setDate:unoDate animated:NO]; 
} 

然後,當用戶更改選取器的值時,您需要存儲新值。

// When the datePicker value has changed, we store the value 
[[NSUserDefaults standardUserDefaults] setObject:alarmDatePickerUno.date forKey:@"PickerUnoKey"]; 
+0

謝謝,但這不是我所尋找的,阻止用戶交互,不要阻止日期選擇器在鬧鐘日期。 – Acunamatata 2012-04-06 04:55:28

+0

也許我需要明白'block'的含義。你想改變日期選擇器的日期,還是你想爲選擇器設置一個不可更改的日期。我不確定我瞭解你。 – 2012-04-06 09:50:42

+0

好吧,我嘗試用我可憐的英語解釋,我希望日期選擇器在設置鬧鐘後停留在鬧鐘的日期,並且在用戶移動它之前不要更改。 – Acunamatata 2012-04-06 10:02:13

相關問題