ios – UISearchDisplayController.displaysSearchBarInNavigationBar将搜索栏放置在窗口的中间

我试图在iOS7 UISearchDisplayController类中使用displaysSearchBarInNavigationBar属性来显示导航栏中的搜索栏.

使用AdvancedTableSearch example from Apple作为基础,我已将代码更改为禁用范围(导航栏中不允许),并将showsSearchBarInNavigationBar设置为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属性为零.

解决方法

从表格视图中删除搜索栏.使用displaysSearchBarInNavigationBar意味着UISearchDisplayController将负责将搜索栏放在层次结构中.

此外,navigationItem将为nil直到showsSearchBarInNavigationBar设置为YES.该项目仅在需要时创建.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...