我的应用程序中有一个tableview ...此列表视图的内容基于ext API动态搜索显示...
e.g。如果我在搜索栏中输入“G”,它将显示GA,GB,GC1,GC2,GC3,..
如果我现在改为GC,它只会显示GC1,GC2,GC3 ..
我将项目存储在数组中..
我的问题是如何确保用户输入的内容以及在搜索结果同步时看到的内容。我的意思是,如果他在列表视图中点击GC1,他应该看到GC1的详细信息,而不是其他的...
当调用cellForRowAtIndexPath时,每次用户在搜索栏中输入时我都可以更新数组吗?
答案 0 :(得分:4)
-cellForRowAtIndexPath:表在任何时候想要显示单元格时发送,例如重绘表格时,或者由于用户滚动一点而需要新单元格时。
如果'table'是指向表的指针,您可以通过调用[table reloadData]来强制表更新其内容。
答案 1 :(得分:1)
您应该在filterContentForSearchText: scope:
方法中更新已过滤项目的数组。当用户在搜索栏中键入时,还会调用另一种方法searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
。如果从此方法返回YES,则将重新加载表,这将导致cellForRowAtIndexPath:
被调用。