问题重现:
当选择使用UISearchController实现搜索功能时,点击搜索按钮 出现搜索结果列表页面,此时UITableView正常显示,如下图:

然后任意点击一项 进入详情页面,然后在详情页面点击返回按钮返回到列表页面。通过断点打印,此时列表页面UITableView的原点不是从导航栏下面开始,而是从屏幕左上角开始(被导航栏和状态栏盖住了),如下图:

解决办法:
在viewWillDisappear方法中调用_searchController.active = NO; 既搜索页面消失时,让UISearchController从激活状态变为不激活状态;
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
_searchController.active = NO;
}
网友评论