UIDatePicker"价值已更改"在iPhone 6/6 +上没有触发动作

时间:2014-10-01 05:55:49

标签: objective-c datepicker ios8

我注意到UIDatePicker的异常行为。

我有一张桌子,当我选择一个单元格时,datePicker会出现。

当我更改选择器内的值时,在iPhone 4s / 5 / 5s(iOS 8)上,“值已更改”操作将按预期触发。

在iPhone 6/6 +上,第一次没有任何事情发生(既不是例外,也不是任何事情)。在第二次更改值后,它可以正常工作。

所以,我的问题很简单......为什么iPhone 6/6 +有这种行为?

这是一个已知的错误还是什么?

谢谢

更新:

我的应用程序自2012年8月开始在商店中使用,并始终正常运行...

这是代码

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    // set the selected HH:mm date
    self.pickerView.date = [[self.fetchedResultsController objectAtIndexPath:indexPath] presence];    
    // check if our date picker is already on screen
    if (self.pickerViewView.superview == nil && self.duplicateDatePickerView.superview == nil)
    {
        [self openDatePickerView:self.pickerViewView withToolbar:self.toolBar];
    }
    self.selectedPresence = [self.fetchedResultsController objectAtIndexPath:indexPath];
}

- (IBAction)dateAction:(id)sender{
    NSIndexPath *indexPath = self.ipForDateAction;
    if(!self.selectedPresence)
        self.selectedPresence = [self.fetchedResultsController objectAtIndexPath:indexPath];
    NSDateComponents *comp = [TimeUtility hoursAndMinutesFromDate:self.pickerView.date];
    self.selectedPresence.presence = [TimeUtility date:self.selectedPresence.presence withHour:comp.hour minute:comp.minute];

    [self saveContext];
    [self timeRemainingForDate];
}

更新2:

这种奇怪的行为只会将选择器的模式设置为“倒数计时器”

1 个答案:

答案 0 :(得分:1)

以下是此错误的解决方法。我已经向Apple提交了一个雷达,他们说他们知道这个问题。这个答案是由用户Sergio Silva提供的,他在Apple开发者论坛上回答我:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.myDatePicker setCountDownDuration: xxxxxx];




 //or [self.myDatePicker setDate:xxxx animated:NO];
});