2010-03-31 5 views
6

Tôi có bộ điều khiển xem, vào chế độ xem tôi đã đặt chế độ xem bảng và thanh tìm kiếm vào tiêu đề của bảng ... thanh tìm kiếm không hiển thị, chỉ chế độ xem bảng trống.UISearchBar Không xuất hiện

Tôi có cần phải làm gì đó bổ sung không? Tôi khá chắc chắn của nó để làm với view ổ cắm của UIViewController, thiết lập để View ...

Cảm ơn

Trả lời

-1

Cố định sử dụng một UISearchBar với bộ điều khiển.

8

Đối với bất kỳ ai khác có thể được trả lời câu hỏi này, tôi đã có một tình huống rất giống nhau, nơi một UITableViewController với một UISearchBar thêm vào nó không được hiển thị. Nếu bạn thấy mình trong tình huống này, hãy kiểm tra rằng bạn đang thực sự kêu gọi:

initWithNibName:@"MyNibName" bundle:nil 

init điều khiển xem của bạn thay vì các Bảng chung Xem init của:

initWithStyle:UITableViewStylePlain 

tôi đã dại dột thêm tìm kiếm thanh để Nib, và sau đó tải nó với init phong cách (mà bỏ qua các Nib hoàn toàn và tải xem bảng từ đầu)

+0

này đã giúp, tôi đã đi qua con số không để initWithNibName, mà thường làm việc nhưng đối với UITableViewControllers nó dường như không. –

0

Nếu bạn đặt bộ điều khiển xem của bạn như là một phần của bộ điều khiển thanh tab, bên cạnh "Class" tài sản trong IB đặt thuộc tính "tên NIB". Tôi mất vài giờ để tìm ra.

2

thử đặt bảngHeaderXem bảng của bạnXem để tìm kiếm của bạnBar.

self.tableView.tableHeaderView = searchBar; 

nếu bạn đang sử dụng IB, hãy chắc chắn kết nối các cửa hàng để nó được tham chiếu.

2

Hãy thử điều này, l nó làm việc cho tôi:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    self.tableView.tableHeaderView = _searchBar; 
    [_searchBar becomeFirstResponder]; 
} 

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [_searchBar resignFirstResponder]; 
    self.tableView.tableHeaderView = _searchBar; 
} 

-(void) scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    searchBar.frame = CGRectMake(0,MAX(0,scrollView.contentOffset.y),320,44); 
}