【问题标题】:UISearchDisplayController and setDisplaysSearchBarInNavigationBarUISearchDisplayController 和 setDisplaysSearchBarInNavigationBar
【发布时间】:2014-02-09 15:59:37
【问题描述】:

我正在为UISearchDisplayController 苦苦挣扎,希望有人可以帮助我。

所以基本上我有一个UINavigationBar,里面有一个“搜索”按钮。当有人点击“搜索”时,UISearchDisplayController 应该被激活并且 UISearchBar 应该出现在UINavigationBar 中。在 SearchBar 旁边,我实现了一个“取消”按钮,它可以停用 SearchDisplayController 并将 UINavigationBar 重置为使用“搜索”按钮的标准。

我的第一个问题是SearchBar 与结果表之间的差距或SearchDisplayController 处于活动状态时的灰色叠加层。

第二个问题是我无法在点击取消后将我的 rightBarButtonItem 重置为默认图标(放大镜)。即使我尝试设置 [self.navigationItem setRightBarButtonItem:nil]; 也没有发生任何事情,它只是保留在“取消”按钮上。

这是我的实现:(UI 元素是通过我的故事板添加的)

- (IBAction)btnSearchClicked:(id)sender {
[self.navigationController.navigationBar addSubview:self.searchController.searchBar];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEditing)];

[self.searchController.searchBar setFrame:CGRectMake(0, 0, 250, 44)];
[self.searchController setDisplaysSearchBarInNavigationBar:YES];
[self.searchController setActive:YES animated:YES];
[self.searchController.searchBar becomeFirstResponder];
}

-(void)cancelEditing
{
[self.navigationItem setRightBarButtonItem:nil];
[self.searchController setActive:NO animated:YES];
[self.searchController.searchBar removeFromSuperview];
}

【问题讨论】:

    标签: ios objective-c ios7 uisearchbar uisearchdisplaycontroller


    【解决方案1】:

    好的,我想出了解决这两个问题的方法。

    由于[self.searchController setDisplaysSearchBarInNavigationBar:YES]; 期望 NavigationBar 是半透明的,所以出现了差距,所以我通过在 btnSearchClicked 上启用半透明并在取消时停用它来解决问题。

    通过在访问setRightBarButtonItem 属性之前停用cancelEditing 中的setDisplaysSearchBarInNavigationBar 解决了该按钮的问题。也许setDisplaysSearchBarInNavigationBar-Option 创建了一个不响应 self.navigationItem 的新 NavigationBar。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 2011-01-12
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多