2012-04-05 123 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