我有一个包含可搜索数据的表格视图,以及一个包含可编辑textField的单元格(可使用pickerView编辑)。我使用pickerView选择要显示的tableview部分。但是,当在pickerView中选择了一个新行时,我不希望解除pickerView,这就是我使用
时会发生的情况。[self.tableView reloadData];
我尝试了以下方法来解决问题,尝试重新加载除了包含textField的单元格之外的表:
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSIndexSet *toReload = [[NSIndexSet alloc] initWithIndex:1];
if (row == 0)
{
self.selectedDepartmentField.text = @"All";
toReload = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 13)];
}
else
{
self.selectedDepartmentField.text = [self.departments objectAtIndex:(row - 1)];
}
[self.tableView reloadSectionIndexTitles];
[self.tableView beginUpdates];
[self.tableView reloadSections:toReload withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
这与EXC_BAD_ACCESS(代码= 1,地址= 0x28)
崩溃我应该如何重新加载表格中的数据以保持pickerView的活动状态?
答案 0 :(得分:1)
以下是一种可能的方法
使用
获取NSIndexPath
数组
NSArray *visibleIndexPaths = [self.tableView indexPathsForVisibleRows];
使用visibleIndexPaths
中的选择器删除单元格的索引路径。
使用以下方法重新加载tableview
[self.tableView reloadRowsAtIndexPaths:visibleIndexPaths withRowAnimation:UITableViewRowAnimationNone];
这应该重新加载除拾取器之外的所有可见单元格。