我目前有一个 TableView Controller ,并在界面生成器内的 TableView Controller 顶部或上方放置了一个 UISearchDisplayController。在我的实现文件的 viewDidLoad 中,我继续将搜索栏分配给 navigationItem.titleView。我现在遇到的问题是第一个 TableView 单元格中有更多空间,因为它仍然认为 searchdisplaycontroller 在那里。你可以在这里看到它:http://imgur.com/u6cQew2
代码如下:
.h文件
@interface searchTableViewController : UITableViewController <UISearchBarDelegate>
{
UISearchBar *searchDrugBar;
}
@property (nonatomic, strong) IBOutlet UISearchBar *searchDrugBar;
.m文件
- (void)viewDidLoad
{
[super viewDidLoad];
searchDrugBar.placeholder = @"Search for info";
self.navigationItem.titleView = self.searchDisplayController.searchBar;
[self.searchDisplayController setActive: YES animated: YES];
[self.searchDisplayController.searchBar becomeFirstResponder];
}
有什么建议或想法吗?提前致谢!
最佳答案
尝试以编程方式创建搜索栏,除非您有自己的理由,否则我看不到在 Storyboard中创建它有任何附加值。
首先将其从 Storyboard中删除,然后:
- (void)viewDidLoad
{
[super viewDidLoad];
searchDrugBar = [[UISearchBar alloc] init];
searchDrugBar.frame = CGRectMake(0, 0, 200,44); // it could be unnecessary
searchDrugBar.delegate = self;
searchDrugBar.placeholder = @"Search for info";
self.navigationItem.titleView = self.searchDisplayController.searchBar;
[self.searchDisplayController setActive: YES animated: YES];
[self.searchDisplayController.searchBar becomeFirstResponder];
}
关于ios - 如何以编程方式在 UITableViewController 的 NavigationBar 内设置 UISearchDisplayBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148937/