我在视图中有UIDatePicker
,其控制器位于UINavigationController
。我正在注册所选日期的更改,如下所示:
[self.datePicker addTarget:self.alarm action:@selector(timeChanged:) forControlEvents:UIControlEventValueChanged];
效果很好,除非用户在日期选择器完全结算之前按下UINavigationController
中的后退按钮。在这种情况下,timeChanged:
方法没有被调用,所以我没有得到新的日期。
当我按下后退按钮时,没有任何东西被释放,只是视图控制器被弹出。 (保留对它的引用)。
我找到了UIPickerView
这个问题的解决方案,涉及为选择器视图实现委托方法(例如:UIPickerView: Get row value while spinning?)。但除非我错了,否则这不是UIDatePicker
的选项。如果可能,我想坚持UIDatePicker
而不是自定义UIPickerView
。有没有办法做到这一点?它不必完美地获取所选行(在一行或两行内就可以了),但越接近越好。
答案 0 :(得分:3)
对于当前的API,无法检测UIDatePicker
是否正在旋转。
这是因为UIDatePicker
不是UIPickerView
的子类,而是在内部管理UIPickerView
。
我担心这里最好的解决方案是使用自定义UIPickerView
。