2016-06-16 82 views

回答

0

首先,您應該設置UISearchBar的代表並創建一個帶有過濾結果的其他NSMutableArray。您的UITableView的dataSource現在將發佈這個新陣列。

然後,添加委託方法是這樣的:

-(void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)text { 
    filteredTableData = [[NSMutableArray alloc] init]; 

    for (Food* food in allTableData) 
    { 
     NSRange nameRange = [food.name rangeOfString:text options:NSCaseInsensitiveSearch]; 
     NSRange descriptionRange = [food.description rangeOfString:text options:NSCaseInsensitiveSearch]; 
     if(nameRange.location != NSNotFound || descriptionRange.location != NSNotFound) 
     { 
      [filteredTableData addObject:food]; 
     } 
    } 
    [self.tableView reloadData]; 
} 

對於完整的代碼,在這裏看到:Filtering a UITableView with a search bar

希望這有助於。

+0

什麼是「食物」。我是ios新手。所以你可以告訴我.. –

+0

我看到完整的代碼但不理解,什麼是「食物」。這是任何類型的數據類型或類的typedef。 –

+0

對不起,沒有包含所有信息。食物是存儲在數組中的對象的(自定義)類型。假設你存儲城市名稱,你的類型可能是NSString。用NSString替換食物。如果你提供一些代碼,我會進一步幫助你。 – AnthoPak

相關問題