根据节标题过滤UITableView的整个部分

时间:2013-07-16 21:30:31

标签: ios objective-c

我正在努力找出解决这个问题的最佳方法。我有一个UITableView,其中可能有X个部分。我还有一个按钮,它产生一个带有自定义UIPickerView的弹出框,显示每个部分的标题(我从数组中获取了这些值,而不是UITableView,因为我无法弄清楚如何)。

当他们选择一个选项时,我想要隐藏UITableView中的所有部分,显然,这一部分带有所选选项的标题。

我想知道你是否可以遍历所有部分,看看它的标题,如果它与选择不匹配,隐藏它?可能值得注意的是,永远不会有超过10个部分,每个部分都有几个单元格,所以我不知道[table updateTable]或[table reloadData]是否更好。

我的尝试:

//Filter out the notes that should display
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
//self.notesTable.dataSource = [myArrayOfDictionaries objectAtIndex:row]; 
//[self.notesTable reloadData]; this did not work

for (int section = 0; section < [notesTable numberOfSections]; section++){
    //find sections that don't match pickerview selection
    NSLog@("%@",[notesTable headerViewForSection:row);//return null?

}

}

1 个答案:

答案 0 :(得分:1)

您能否发布UITableView.delegateUITableView.dataSource方法的代码?

你想做这样的事情:

  • 维护@property指向allData并维护指向currentData的另一个@property
  • 用户选择一个部分
  • 您从allData中获取sectionData,将此sectionData设置为您的currentData
  • 致电reloadData
  • 上的tableView
  • 确保您的delegatedataSource方法引用currentData @property

这似乎是因为您设置UITableView的{​​{1}},这是不正确的。 dataSource = currentData应始终设置为您设置为符合此协议的类(可能是您的DataSource)。