我正在嘗試創建一個搜索欄,它將用來自兩個數據源(本地& API調用)的結果更新UITableView。我正在努力找出實現這一點的正確方法。filterContentForSearchText不在UITableView上顯示數據
我有一個UITableView設置爲頂部有搜索欄的用戶列表。
當我有設置爲與本地SEARCHTEXT過濾UITableCells代碼它完美。
然而,從解析拉動數據,並試圖加入,在細胞下方的本地搜索數據時沒有出現。
的代碼正確地更新self.searchText
陣列但數據在的tableView從不顯示。是什麼賦予了?
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
[self.searchResult removeAllObjects];
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
NSMutableArray *queryArray = [[NSMutableArray alloc] init];
PFQuery *query = [PFUser query];
[query whereKey:@"fullName" hasPrefix:@"Joe"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
for (PFObject *pfObj in objects)
{
NSDictionary *person = [[NSDictionary alloc]
initWithObjects:@[pfObj[@"fullName"], pfObj.objectId]
forKeys:@[@"name", @"objectId"]];
[queryArray addObject:person];
}
self.searchResult = [NSMutableArray arrayWithArray: [self.contacts filteredArrayUsingPredicate:resultPredicate]];
[self.searchResult addObjectsFromArray:queryArray];
} else {
NSLog(@"%@", error);
}
}];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (tableView == self.searchDisplayController.searchResultsTableView)
{
cell.textLabel.text = [self.searchResult[indexPath.row] objectForKey:@"name"];
}
else
{
cell.textLabel.text = [self.contacts[indexPath.row] objectForKey:@"name"];
}
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.searchDisplayController.searchResultsTableView)
{
return [self.searchResult count];
}
else
{
return [self.contacts count];
}
}
您是否實施了多少次浮動?在此處發佈 – Pawan 2014-12-03 06:38:44
在完成從分析中加載數據後,您需要重新加載tableView。確保你在主隊列上執行此操作 – Paulw11 2014-12-03 06:43:45
@pawan是的,我已經實現了numberOfRowsInSection。我已經相應地更新了我的帖子。 – 2014-12-03 17:15:20