1

SQLite データベースからデータをロードする iPhone アプリケーションを構築しています。これまではなんとか対処できていましたが、データベースのコンテンツを動的に検索して適切な検索結果を取得するために、上部に検索バーを追加する必要があります。

私は Xcode 4.3.3 を使用しており、Xcoding の初心者です。

これまでにオンラインで投稿されたほぼすべてのチュートリアルを見てきましたが、助けが必要です。

役立つ非常に具体的なチュートリアルやサンプル コードはありますか? 高く評価されます。

4

3 に答える 3

3

誰もがこれはこれまでに見つかった中で最も役立つリンクです

http://code-ninja.org/blog/2012/01/08/ios-quick-tip-filtering-a-uitableview-with-a-search-bar/

于 2012-07-17T06:56:38.277 に答える
0

コントローラはUISearchBarDelegateプロトコルを実装する必要があります

次に、initメソッドで、これまたは同様のものを追加します

CGRect searchBarRect = CGRectMake(0, 0, self.view.bounds.size.width, 44);
_searchBar = [[UISearchBar alloc] initWithFrame:searchBarRect];
_searchBar.delegate = self;

その後、これらの3つのメソッドを実装し、私の実装のように見えるものを投稿します

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
    [searchBar setShowsCancelButton:YES animated:YES];
    self.tableView.allowsSelection = NO;
    self.tableView.scrollEnabled = NO;
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    searchBar.text=@"";
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection = YES;
    self.tableView.scrollEnabled = YES;
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {

    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection = YES;
    self.tableView.scrollEnabled = YES;

    /* fire method that does querying with searchBar.text as attribute */
    [self some method:searchBar.text];
}
于 2012-07-16T15:34:16.150 に答える
0

NSPredicateを使用できます。 http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/Reference/NSPredicate.html

[NSPredicate predicateWithFormat:@"whatYouAreSearching LIKE %@", searchBar.text];

NSFetchRequestを使用している場合は、setPredicateメソッドを使用して述語を割り当てることができます。

于 2012-07-16T14:02:11.300 に答える