2016-10-19 4 views
0

私のiOSアプリケーションに問題がありますが、テーブルビューに2つのセクションを追加しましたが、検索バーは両方のセクションに結果を表示しています。検索バーがテーブルビューの両方のセクションに結果を表示しています

ここでは推測していますが、検索バーには独自のセクションがないため、両方に結果が表示されるため問題になることがありますか?別のセクションを追加する必要がありますか?コードを修正しますか?または、filteredArrayを処理する別のtableview/viewコントローラを追加しますか?

コード:

dataArray私は私のサーバー

followedArrayからすべての私の配列を持っているところである特定の配列がdataArray

filteredArrayから行くところですdataArray

から検索配列でありますnumberOfRowsInSection

if (!isFiltered) { 

    if (section == 0) { 
     return [followedArray count]; 
    } 
    else { 
     return [dataArray count]; 
    } 
} 
return [filteredArray count]; 

titleForHeaderInSection

if (section == 0) { 
    return @"Followed Data"; 
} 
else { 
    return @"All Data"; 
} 

cellForRowAtIndexPath

Data * dataObject; 
if (!isFiltered) { 

    if (indexPath.section == 0) { 
     dataObject = [followedArray objectAtIndex:indexPath.row]; 
    } 
    else { 
     dataObject = [dataArray objectAtIndex:indexPath.row]; 
    } 
} 
else { 
    dataObject = [filteredArray objectAtIndex:indexPath.row]; 
} 

検索バーtextDidChange

if (searchText.length == 0) { 
    isFiltered = NO; 
} else { 
    isFiltered = YES; 

    filteredArray = [[NSArray alloc] init]; 
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self.dataName contains[c] %@", searchText]; 
    filteredArray = [dataArray filteredArrayUsingPredicate:resultPredicate]; 

} 
[myTableView reloadData]; 

--------------------------------

私はここで間違って何をしているのですか?または私は何かを逃していますか?

セクション2でdataArray、検索バーでdataArrayを検索して独立して表示する場合、filteredArrayを持っています。両方のセクションには表示されません。ありがとうございました!

答えて

1

非常に簡単な答えが、私はiOSの

// Title for Header 
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 

    if !(searchController.isActive && searchController.searchBar.text != "") { 

     if section == 0 { 
      return "Followed Data" 
     } 
     else { 
      return "All Data" 
     } 
    } 

    return "Filtered Data" 
} 

// Number of Rows in Section 
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    if !(searchController.isActive && searchController.searchBar.text != "") { 

     if section == 0 { 

      return followedArray.count 
     } 
     else if (section == 1) { 

      return dataArray.count 
     } 
    } 

    return filteredArray.count 
} 

// Number of Sections 
func numberOfSections(in tableView: UITableView) -> Int { 

    if !(searchController.isActive && searchController.searchBar.text != "") { 

     return 2 
    } 

    return 1 
} 
に新しいました
関連する問題