Iphone 如何检测未选择UITableView表格单元格的情况?

Iphone 如何检测未选择UITableView表格单元格的情况?,iphone,uitableview,grouped-table,Iphone,Uitableview,Grouped Table,我的iPhone应用程序中有一个开始日期/结束日期功能。它与iPhone的本机日历应用程序类似,只是没有“全天”选项。也就是说,用户所能做的就是输入开始时间/日期和结束时间/日期 该接口是一个简单的分组UITableView,包含两个单元格。用户选择开始单元格或结束单元格(将其变为蓝色),然后使用UIDatePicker更改每个单元格的值 我已经让一切都按预期工作,除了用户可以在表外单击,这会导致不选择任何表单元格。问题是,用户仍在编辑以前选择的单元格 理想情况下,我可以限制用户始终选择一个表格

我的iPhone应用程序中有一个开始日期/结束日期功能。它与iPhone的本机日历应用程序类似,只是没有“全天”选项。也就是说,用户所能做的就是输入开始时间/日期和结束时间/日期

该接口是一个简单的分组UITableView,包含两个单元格。用户选择开始单元格或结束单元格(将其变为蓝色),然后使用UIDatePicker更改每个单元格的值

我已经让一切都按预期工作,除了用户可以在表外单击,这会导致不选择任何表单元格。问题是,用户仍在编辑以前选择的单元格


理想情况下,我可以限制用户始终选择一个表格单元格。除此之外,我将满足于能够检测到没有选择任何单元格,这样我就可以在UIDatePicker编辑任何内容之前拦截它。

从您的问题来看,您在同一视图中有一个表视图,其下方有一个UIPicker。当用户选择一个单元格时,您可能希望将选择器放在一个单独的视图中,并将其推到屏幕上。使用此技术,用户肯定必须选择一个单元格来编辑选择器中的信息。

您可以从
UITableViewDelegate
中实现
将取消行索引路径。返回
nil
,该行不会被取消选择:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    return nil;
}
或者,您可以实现
didderowatindexpath
,这样您就知道它没有被选中。但您必须将其存储在成员变量或其他地方:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath 

事实证明,SDK3.0本身就解决了这个问题。