在旋转时获取选定的UIDatePicker行

时间:2013-04-19 23:17:55

标签: ios objective-c uidatepicker

我在视图中有UIDatePicker,其控制器位于UINavigationController。我正在注册所选日期的更改,如下所示:

[self.datePicker addTarget:self.alarm action:@selector(timeChanged:) forControlEvents:UIControlEventValueChanged];

效果很好,除非用户在日期选择器完全结算之前按下UINavigationController中的后退按钮。在这种情况下,timeChanged:方法没有被调用,所以我没有得到新的日期。

当我按下后退按钮时,没有任何东西被释放,只是视图控制器被弹出。 (保留对它的引用)。

我找到了UIPickerView这个问题的解决方案,涉及为选择器视图实现委托方法(例如:UIPickerView: Get row value while spinning?)。但除非我错了,否则这不是UIDatePicker的选项。如果可能,我想坚持UIDatePicker而不是自定义UIPickerView。有没有办法做到这一点?它不必完美地获取所选行(在一行或两行内就可以了),但越接近越好。

编辑:这是一个越狱应用程序,所以私人API很好,如果我能弄清楚它们是什么。

1 个答案:

答案 0 :(得分:3)

对于当前的API,无法检测UIDatePicker是否正在旋转。

这是因为UIDatePicker不是UIPickerView的子类,而是在内部管理UIPickerView

我担心这里最好的解决方案是使用自定义UIPickerView