Ios UISearchBar未设置为UITableView.tableHeaderView

Ios UISearchBar未设置为UITableView.tableHeaderView,ios,uitableview,uisearchbar,uisearchdisplaycontroller,Ios,Uitableview,Uisearchbar,Uisearchdisplaycontroller,我在为UITableView编程创建UISearchBar和UISearchDisplayController时遇到问题。我已经设置了UISearchBar和UISearchDisplayController,然后将self.tableview.tableHeaderView设置为self.searchBar。tableHeaderView仍然为空,但searchBar和searchDisplayController不为空。如何使UISearchBar不为null并显示在表格标题中 这是我设置的

我在为UITableView编程创建UISearchBar和UISearchDisplayController时遇到问题。我已经设置了UISearchBar和UISearchDisplayController,然后将self.tableview.tableHeaderView设置为self.searchBar。tableHeaderView仍然为空,但searchBar和searchDisplayController不为空。如何使UISearchBar不为null并显示在表格标题中

这是我设置的:

- (void)viewDidLoad {
[super viewDidLoad];

/*other things here*/

//Search Bar
self.searchedDancerData = [[NSMutableArray alloc] init];
self.searchBar = [[UISearchBar alloc] init];
self.searchBar.delegate = self;
[self.searchBar sizeToFit];
self.searchBar.autocorrectionType = UITextAutocorrectionTypeNo;
[self.tableView setTableHeaderView:self.searchBar];
self.tableView.tableHeaderView.frame = CGRectMake(0, 0, tableView.frame.size.width, 44);

self.searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
[self.searchDisplayController setDelegate:self];
[self.searchDisplayController setSearchResultsDataSource:self];
[self.tableView reloadData];
NSLog(@"%@", self.tableView.tableHeaderView); //Returns NULL
}

- (void)viewWillAppear:(BOOL)animated
{
/*other things*/

//set Content offest
[self.tableView setContentOffset:CGPointMake(0, 44)]; 
}

#pragma mark UISearchDisplayControllerDelegate

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
[self.searchedDancerData removeAllObjects];

for (NSDictionary *dancer in self.dancerData) {
    NSRange range = [[dancer objectForKey:@"Name"] rangeOfString:searchString options:NSCaseInsensitiveSearch];
    if (range.location != NSNotFound) {
        [self.searchedDancerData addObject:[dancer copy]];
        [self.searchedDancerData sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
    }
}
return YES;
}

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
[self.searchDisplayController.searchResultsTableView setDelegate:self];
}

- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
[self.tableView setContentOffset:CGPointMake(0, 44) animated:YES];
}

-(void)searchBar:(id)sender
{
[self.searchDisplayController setActive:YES animated:YES];
}
我的所有UITableViewDelegate方法都包含以下内容来填充搜索表:

if (self.searchDisplayController.searchResultsTableView == theTableView) {
    return something;
} else {
    return somethingElse
}

我觉得我已经正确设置了,请有人帮我解决一下。

尝试在tableView的标题视图中将搜索栏设置为UISearchDisplayController的搜索栏

[self.tableView setTableHeaderView:self.searchDisplayController.searchBar];

也许试着设置uisearchbar的框架?不,不起作用。我还尝试向导航栏添加一个搜索按钮,当我单击它时,searchDisplayController工作,但搜索栏仍然没有出现。