0

以前我有UITableViewControlleraUISearchBar并且它通过使用显示在顶部self.tableView.tableHeaderView = searchBar;

现在我不得不重做一些事情,最后得到了 a UIViewControllerwhich shows 2 UITableView's。我希望上面的显示搜索栏,但现在没有显示。

现在我使用[MyView setTableHeaderView:searchBar];in viewDidLoadMethod 将 searchBar 添加到 TableView。

UIViewController代码中几乎与UITableView(搜索栏初始化和框架创建以及表格视图初始化)中的相同

任何想法我做错了什么?

编辑:这一切背后的想法是在上部表格视图(包括搜索栏)和另一个 uitableview 中有一个列表,我可以在其中选择一些过滤选项。

(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
    searchResult = [[NSMutableArray alloc] init];

    LexikonView = [[UITableView alloc] initWithFrame:CGRectMake(0, 44, 320, 337) style:UITableViewStylePlain];
    LexikonView.dataSource = self;
    LexikonView.delegate = self;
    [self.view addSubview:LexikonView];

    FilterView = [[UITableView alloc] initWithFrame:CGRectMake(0, 381, 320, 0) style:UITableViewStylePlain];
    //FilterView.dataSource = self;
    //FilterView.delegate = self;
    [self.view addSubview:FilterView];
}
return self;
}

(void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib

searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
searchBar.autocorrectionType = UITextAutocorrectionTypeYes;

searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];

searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;

[LexikonView setTableHeaderView:searchBar];
}

现在我只想让搜索栏再次工作(就像使用 uitableviewcontroller 一样)。如果我减小上部表格视图的大小,我只会看到空白空间。我在 IB 中添加了一个 UISearchBar,瞧,它就在那里,但没有调用委托方法。
是的,我希望搜索栏始终在表格视图的顶部可见

4

1 回答 1

2

我想你想要一个TableView总是SearchBar可见的,对吧?如果是这种情况,您只需将 a 添加TableView到 aViewController并在顶部为SearchBar. 添加SearchBar独立的TableView。我有一篇文章展示了这是如何完成的,并且还为您提供了一些快速搜索TableView.

If this isn't what you are after, please be a little more specific in what your goals are here. Also please post the code you are using to try to accomplish what you are trying to do.

于 2012-08-19T11:08:01.337 回答