我有一个UISearchController
带有 a UITableViewController
as asearchResultsController
的,UISearchBar
它searchController
被设置为tableHeaderView
我当前tableView
显示在我的根 ViewController 中的。正如预期的那样,几乎一切都运行良好。但是在动画中UISearchBar
(当我点击 searchBar 和UINavigationBar
隐藏并且 searchBar 到顶部时,如在 中UISearchDisplayController
)我有一个奇怪的行为。它没有移动到UINavigationBar
(y: 0) 的位置,而是跳出屏幕,然后开始显示取消按钮的动画。我尝试将我的实例化代码移动到viewDidLoad
而不是init
,事情是一样的。我认为问题的中心在于searchResultsController
的观点,但我不确定(我尝试设置框架,但没有成功)。我所做的一切都是纯代码。
这是代码的相关部分:
- (void) viewDidLoad {
[super viewDidLoad];
// search controller setup
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchResultsController];
self.searchController.delegate = self;
self.searchController.searchResultsUpdater = self;
self.searchController.searchBar.delegate = self;
[self.searchController.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchController.searchBar;
self.searchController.definesPresentationContext = YES;
}
我有一个懒加载searchResultsController
:
- (UITableViewController *)searchResultsController {
if (_searchResultsController == nil) {
_searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
_searchResultsController.tableView.delegate = self;
_searchResultsController.tableView.dataSource = self;
}
return _searchResultsController;
}
我已经从苹果下载了示例代码,但他们使用 storyBoards 和 UITableViewCell 的 xib,SearchController 在项目中完美运行。有没有人有同样的问题?我怎样才能解决这个问题?任何解决方案或建议将不胜感激。
感谢您的关注。