uitableview検索バーios5 ARC /ストーリーボード

編集:私はまだ検索結果を取得しないで、検索結果の代わりにテーブルのデータをロードしようとすると(私はまだ配列を交換することによって)テーブルのデータを読み込もうとすると、最後の参照コードに問題があると思うが、私はまだなぜ分かりません。 ..完全なオリジナル投稿:

私はテーブルビューで作業する検索バーを取得しようとしています。検索バーにテキストを入力することはできますが、結果は常に見つかりません。ここに私の.h

@interface SecondViewController : UIViewController  {
IBOutlet UISearchBar *searchBar;
NSMutableArray *dummyArray;
NSMutableArray *searchArray;
}

@property (nonatomic, strong) NSMutableArray *dummyArray;
@property (nonatomic, strong) NSMutableArray *searchArray;
@property (nonatomic, strong) NSMutableArray *detailArray;
@property (nonatomic, strong) NSMutableArray *imageArray;


- (void) setupArray;

- (void) setupSearchArray;

- (void) setupDetailArray;

@end

私の.mでは、dummyArrayは、メインのcell.textLabel.textと検索したい配列を塗りつぶす配列です。

私はここでsearchArrayを設定しました:

- (void) setupSearchArray{
searchArray = [NSMutableArray arrayWithCapacity:[dummyArray count]]; 
}

次に、searchArrayにdummyArrayのフィルタリングされたバージョンを作成しようとします。

- (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
[searchArray removeAllObjects] ;

for (NSString *savedSeachTerm in dummyArray) {



    NSRange result = [savedSeachTerm rangeOfString:searchString options:
                      NSCaseInsensitiveSearch];
    if (result.location != NSNotFound)
        [searchArray addObject:savedSeachTerm];

}

return YES;
}

検索テキストをここに入力すると、検索結果が表に表示されます。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];



}

if (tableView == self.searchDisplayController.searchResultsTableView) {
    cell.textLabel.text = [searchArray objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = [detailArray objectAtIndex:indexPath.row];
}
else {
    cell.textLabel.text = [dummyArray objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = [detailArray objectAtIndex:indexPath.row];
}
        if (indexPath.row == 0) {
  cell.imageView.image = [UIImage imageNamed:@"row0.png"];
    }
    return cell;    
}

私は何を間違えたのですか?見てくれてありがとう!

0

1 答え

私は忘れてしまった

[self setupSearchArray];

ごめんなさい!

0
追加された