我有视图控制器,在视图中我放了一个表视图,一个搜索栏进入表的标题...搜索栏没有显示,只是空表视图。
我是否需要做一些额外的事情?我很确定它与UIViewController的view
插座有关,设置为View
......
由于
答案 0 :(得分:8)
对于其他可能登陆此问题的人来说,我的情况非常类似,其中添加了UISearchBar的UITableViewController未显示。如果您发现自己处于这种情况,请仔细检查您实际是在呼叫:
initWithNibName:@"MyNibName" bundle:nil
初始化视图控制器而不是公共的表视图初始化:
initWithStyle:UITableViewStylePlain
我愚蠢地将搜索栏添加到Nib,然后使用样式init加载它(完全跳过Nib并从头开始加载表视图)
答案 1 :(得分:2)
尝试将tableView的tableHeaderView设置为searchBar。
self.tableView.tableHeaderView = searchBar;
如果您使用的是IB,请确保连接插座以便引用它。
答案 2 :(得分:2)
试试这个,这对我有用:
- (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);
}
答案 3 :(得分:0)
如果将视图控制器设置为tabbar控制器的一部分,则除了IB中的“Class”属性外,还要设置“NIB名称”属性。我需要几个小时才弄明白。
答案 4 :(得分:-1)
修复了使用带控制器的UISearchBar。