簡體   English   中英

使用搜索欄篩選數組時,UISearchController TableView不更新

[英]UISearchController TableView Not Updating when Using Search bar to filter array

我正在使用搜索欄抓取用戶輸入的文本,然后使用該文本通過NSArray進行過濾,然后將新構造的數組分配給指定類的array屬性。 代碼如下:

-(void)updateSearchResultsForSearchController:(UISearchController *)searchController{

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@",searchController.searchBar.text];

NSArray *temp = [_array filteredArrayUsingPredicate:predicate];

_resultViewController.dynamicArray = temp;


}

但是我的resultViewController的tableView沒有顯示任何數據。 但是,如果我使用以下方法,則可以使用:

-(void)updateSearchResultsForSearchController:(UISearchController *)searchController{

NSArray *temp = [[NSArray alloc]initWithObjects:@"hello",@"bye",@"why",@"okay", nil];

_resultViewController.dynamicArray = temp;

}

我不太確定如何解決此問題。 似乎當我將_resultViewController的動態數組分配給temp時,使用過濾數組時尚未設置temp。 但是在第二種情況下它可以正常工作,因此我知道其余代碼是正確的。

有什么想法嗎?

如果不了解有關_resultViewController.dynamicArray更多信息,將無法提供幫助。 要考慮的事情:

  • _resultViewController是否是您認為的視圖控制器-正在顯示其視圖的實際視圖控制器?

  • 為什么僅設置_resultViewController.dynamicArray會導致該視圖控制器發生任何事情 例如,在我自己的代碼中,有問題的視圖控制器通常是UITableViewController-因此,在設置其模型數組之后,我總是調用表視圖的reloadData以便我們實際看到過濾后的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM