之前我有一个UITableViewController
UISearchBar
,它使用self.tableView.tableHeaderView = searchBar;
显示在顶部
现在我不得不重做一些事情,结果显示UIViewController
显示2 UITableView's
。我希望上面一个显示搜索栏,但现在它没有显示。
现在我在[MyView setTableHeaderView:searchBar];
方法中使用viewDidLoad
将searchBar添加到TableView。
在UIViewController
中,代码与UITableView
中的代码几乎相同(搜索栏初始化,框架创建以及初始化的tableview)
任何想法我做错了什么?
编辑:所有这些背后的想法是在上面的tableview(包括搜索栏)和另一个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一样)。如果我减小上面tableview的大小我只看到空的空间。我在IB中添加了一个UISearchBar,并且在那里添加了一个UISearchBar,但是没有调用委托方法 是的,我希望搜索栏始终显示在tableview的顶部
答案 0 :(得分:2)
我认为您希望TableView
SearchBar
始终可见?如果是这种情况,您只需向TableView
添加ViewController
,并在SearchBar
的顶部留出空间。独立于TableView添加SearchBar
。我有一篇文章说明了如何完成这项工作,并为快速搜索TableView
的支持数据提供了方向。
如果这不是您所追求的目标,请详细说明您的目标是什么。另外,请发布您正在使用的代码,以尝试完成您要执行的操作。