2012-06-28 3 views
5

bất cứ ai có thể cho tôi một điểm đi đúng hướng trên làm thế nào tôi nên làm điều này:tìm kiếm một danh sách các thành phố

enter image description here

mẫu này từ Weather Channel cho thấy những gì tôi muốn làm. Tôi chỉ muốn có một cái nhìn bảng trong đó ai đó có thể tìm kiếm một thành phố. Tôi không chắc chắn nơi để có được những nguồn lực và làm thế nào để làm điều đó.

+0

Nhìn vào UISearchDisplayController. Nó thực sự là một tableview họ đã đọc từ một danh sách các thành phố. :) Liên kết với tài liệu của apple: [UISearchDisplayController] (http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UISearchDisplayController_Class/Reference/Reference.html) Oh, và nếu tôi không nhầm bạn đang chạy iOS 6 beta tôi thấy. (Thanh điều hướng cho nó đi.) – erran

+0

@ipwnstuff Oooops! Đã chỉnh sửa hình ảnh nhờ: P và bạn có biết cơ hội nào họ đang sử dụng không? – sridvijay

+0

Tôi không biết nhưng @Greg Wang đã thêm một danh sách. – erran

Trả lời

2

Bạn có thể tìm Danh sách thành phố thế giới từ MaxMind.

Đây có phải là tài nguyên bạn đang tìm kiếm không?

1

Tạo chế độ xem bảng và thanh tìm kiếm. Bạn phải thực hiện các đại biểu của họ UISearchBarDelegate,UITableViewDataSource,UITableViewDelegate.

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar1 
{ 

    searchBar.showsSearchResultsButton = YES; 
    searchBar.showsCancelButton = YES; 
    searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
    // flush the previous search content 
    //Implement some code 
} 
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar1 
{ 

    searchBar.showsCancelButton = NO; 
    searchBar.showsSearchResultsButton = NO; 
} 
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 

    if([searchText isEqualToString:@""]||searchText==nil){ 
     [yourTable reloadData]; 
     return; 
    } 
    NSInteger counter = 0; 
    for(NSString *name in yourArray) 
    { 
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; 
     NSRange r = [name rangeOfString:searchText options:NSCaseInsensitiveSearch]; 
     // NSRange r = [name rangeOfString:searchText]; 
     // NSRange r = [name ]; 
     if(r.location != NSNotFound) 
     { 
      //Implement the code. 
     } 
     counter++; 
     [pool release]; 
    } 
    [yourTable reloadData]; 
} 
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar1 
{ 

    // if a valid search was entered but the user wanted to cancel, bring back the main list content 
    // Implement some code 
    @try{ 
     [yourTable reloadData]; 
    } 
    @catch(NSException *e){ 
    } 
    [searchBar resignFirstResponder]; 
    searchBar.text = @""; 
} 
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar1 
{ 

    [searchBar1 resignFirstResponder]; 
} 

Tôi đã cung cấp cho bạn các phương pháp không đầy đủ và bạn có thể thực hiện những gì bạn muốn làm.

Tôi nghĩ điều đó sẽ hữu ích cho bạn.