我正在尝试使用iOS7 displaysSearchBarInNavigationBar
类中的UISearchDisplayController
属性在导航栏中显示搜索栏。
使用AdvancedTableSearch example from Apple作为基础,我更改了代码以禁用范围(导航栏中不允许使用),并将displaysSearchBarInNavigationBar
设置为true,就像这样。
- (void)viewDidLoad
{
[super viewDidLoad];
// create a mutable array to contain products for the search results table
self.searchResults = [NSMutableArray arrayWithCapacity:[self.products count]];
self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
}
不幸的是,我得到的结果看起来像这样:
搜索栏出现在屏幕的中间,而不是显示在navigationItem中。
我究竟做错了什么?
PS:我不确定是否相关,但是
self.searchDisplayController.navigationItem
属性是nil
。 最佳答案
从表格 View 中删除搜索栏。使用displaysSearchBarInNavigationBar
意味着UISearchDisplayController将为您将搜索栏放置在层次结构中。
同样,navigationItem
将为零,直到displaysSearchBarInNavigationBar
设置为YES。仅在需要时才创建该项目。
关于ios - UISearchDisplayController.displaysSearchBarInNavigationBar将搜索栏置于窗口中间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18980955/