我有这个问题UISearchDisplayController
。我想在专用视图中使用它来处理搜索。对于我的控制器类,我使用了搜索栏、搜索控制器和表格视图控制器的组合。SearchViewController 链接到一个.xib
.
@interface SearchViewController : UIViewController <UISearchBarDelegate, UISearchDisplayDelegate, UITableViewDelegate, UITableViewDataSource> {
NSSet *words;
UISearchDisplayController *searchController;
UISearchBar *searchBar;
PhraseTableViewController *phraseTableViewController;
}
一旦SearchViewController
出现,搜索栏就会成为第一响应者,因此搜索处于活动状态。一切看起来都很好,但有一个例外:
为了返回上一个视图,我想使用 SearchBar 的取消按钮。现在问题来了:如果用户在没有进行搜索时触摸底层 tableview 的灰色区域,取消按钮(因此是返回的唯一方法)消失。
这是我试图解决的问题:
showsCancelButton = YES
上searchDisplayControllerDidEndSearch
。有效,但生成的 UI 丑得要命:取消按钮转出然后重新出现。UITapGestureRecognizer
在 searchcontroller中添加一个,searchResultTableView
希望能抓住水龙头。没用,还是通过了。- 子类
UISearchBar
和覆盖self.searchController.searchBar setShowsCancelButton:
- 不起作用。
如何解决这个问题的想法:
- 始终隐藏取消按钮,而是添加自定义按钮。问题:您知道如何做到这一点以使 UI 看起来不错吗?我最关心的是处理所有情况,以便搜索文本字段始终很好地保持在按钮的一侧。
- 一起沟渠
UISearchDisplayController
以获得更灵活的解决方案。你知道去哪里看吗?在 iOS 3 之前,这个控制器不存在,对吧?周围没有解决方案仍然有效吗?
我很高兴您的任何意见。提前致谢。