检测UIDatePicker是否正在滚动?

osc*_*arm 9 iphone objective-c uidatepicker

我在模态视图中使用UIDatePicker来选择日期.我发现如果视图在日期选择器仍在滚动时关闭,我得到了一个EXC_BAD_ACCESS.

当用户选中按钮时,如何检测日期选择器正在滚动?

我有两个想法:

1)检测值是否已经改变:

[myDatePicker addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud)

但我需要能够检测值是否会改变.

2)检查日期是否有效,但是当日期选择器滚动时,返回上一个日期,当然是有效的.

有任何想法吗?

Bog*_*tyr 11

为了避免这种崩溃,您不需要尝试预测选择器何时尝试向您的类发送操作方法调用,而只需在ViewController的dealloc例程中删除选择器的事件操作.

编辑:oops,正如评论中指出的那样,UIDatePicker没有委托.但是你可以为它分配动作事件.因此,应该删除任何指向正在dealloc'd的对象的动作集.

- (void dealloc
{
    [myPicker removeTarget:self action:... forControlEvents:...];
    [myPicker release];
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

  • `UIDatePicker`没有委托. (2认同)