UITableViewController中的UISearchBar?

我想添加一个SearchBar到我的TableView 。 我只是把UISearchBar拖到IB的UITableView的头部,并用UITableView滚动。

现在我改变了使用UITableViewController ,当我拖动UITableView提供的头的UISearchBar ,它根本不显示。

有一个窍门吗?

亲切的问候

你可以通过编程来完成

 UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)]; self.searchBar = tempSearchBar; [tempSearchBar release]; self.searchBar.delegate = self; [self.searchBar sizeToFit]; self.tableView.tableHeaderView = self.searchBar; 

希望这可以帮助。

我得到它通过使用两个UITableViewDelegate协议方法工作-tableView:viewForHeaderInSection:和-tableView:heightForHeaderInSection:如下所示。

 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ if (section == 0) { UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)]; [tempSearchBar sizeToFit]; return tempSearchBar; } return [UIView new]; } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ if (section == 0) { return 40.0f; } return 0.1f; } 

希望能帮助到你。

每当我在nib中定义search栏时,我都不会将其添加到表视图的标题中。 相反,我把它设置在viewDidLoad函数中。 Retterdesdialogs的解决scheme也有效,所以不知道为什么他没有得到更多的选票。

 - (void)viewDidLoad { [super viewDidLoad]; tableView.tableHeaderView = searchBar; } 

这也取决于如何初始化tableview控制器,如果你通过initWithNib:Bundle方法分配和init它应该仍然显示。 但是对于tableview控制器,我认为默认的实现方法是initWithStyle。 如果你使用initWithStyle来分配init,那么nib文件将永远不会加载。

我只是试了一下,它为我工作,不应该有一个把戏。 如果你想在某个地方发布你的项目的蒸馏版本,我可以帮你看看。