0

我正在尝试找出解决此问题的最佳方法。我有一个 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?

}

}
4

1 回答 1

1

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

你想做这样的事情:

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

看起来这对您不起作用的原因是您正在设置UITableView's dataSource = currentData,这是不正确的。DataSource应始终设置为您设置为符合此协议的类(可能是您的UIViewController.

于 2013-07-16T21:39:39.290 回答