2016-07-20 7 views
-1

ここにシナリオがあります - AとBの2つのビューコントローラがあります。objective-cを使用してロードされたtableviewのローを検索する

私はuisearchbarを入力すると、arrAllDataという名前の配列内のテキストを検索し、別の配列名arrFilterDataに結果を格納します。

これで、ViewController AのtableviewでarrFilterDataの内容を検索し、それを強調表示し、既にデータがロードされている必要があります。どのように進めるのですか?

おかげで、

+0

以下のコードを記述してください。 – WasimSafdar

答えて

1

あなたは以下のような何かを行うことができます:

仕上げを検索した後、あなたのViewControllerAのtableViewをリロードします。

およびCellForRowAtIndexPatharrAllDataの現在のindexPathにあるオブジェクトのtableViewチェックは、arrFilterDataに属します。

の場合YESセルをハイライト表示します。そうでない場合はハイライト表示します。

と同様に、

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UITableViewCell *Cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 


    if (Cell == nil) { 

     acell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 
    } 

    if([arrFilterData containsObject:[arrAllData objectAtIndex:indexPath.row]]){ 

     //Highlight Cell 
    } 
    else{ 
     //Do not highlight cell 
    } 


} 
+0

ありがとう...私は試してみましょう – sia

1

あなたがsearchbarで任意のキーワードを入力すると、その後、textDidChangeメソッドが呼び出されます。以下の手順を実行してください。

(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
    {  
    NSPredicate *resultPredicate; 
    resultPredicate = [NSPredicate predicateWithFormat:@"strEpisodeName CONTAINS[c] %@", searchText]; 
    arrFilterData = (NSMutableArray *)[arrAllData filteredArrayUsingPredicate:resultPredicate]; 
    } 

注:上記のコードでは、私は実体変数で検索しました'strEpisodeName'

関連する問題