• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UISearchDisplayController 和 setDisplaysSearchBarInNavigationBar

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:06:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

Default UINavigationBar

我的第一个问题是 SearchBar 与结果表或灰色覆盖之间的差距,而 SearchDisplayController 处于事件状态。

SearchBar activated

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

after clicking Cancel

这是我的实现UI 元素是通过我的 Storyboard添加的)

- (IBAction)btnSearchClickedid)sender {
[self.navigationController.navigationBar addSubview:self.searchController.searchBar];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self actionselector(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];
}



Best Answer-推荐答案


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

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

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

关于ios - UISearchDisplayController 和 setDisplaysSearchBarInNavigationBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21234739/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap