我有一个 UIViewController,里面有 Segmented Control 和 UITableView。全部使用自动布局,在情节提要中设置。这是我在那里设置的约束的代码版本:
H:|-[SegmentedControls]-|
H:|[TableView]|
V:|-[SegmentedControls]-[TableView]|
我添加了 UISearchController 和 UISearchbar 作为表格的标题视图。为了显示搜索结果,我创建了一个新的 UITableViewController。
UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
searchResultsController.tableView.dataSource = self;
searchResultsController.tableView.delegate = self;
self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
self.searchController.delegate = self;
self.searchController.searchResultsUpdater = self;
self.searchController.searchBar.frame = CGRectMake(self.searchController.searchBar.frame.origin.x, self.searchController.searchBar.frame.origin.y, self.searchController.searchBar.frame.size.width, 44.0);
self.clientListTable.tableHeaderView = self.searchController.searchBar;
self.searchController.searchBar.scopeButtonTitles = @[@"Active", @"Inactive"];
self.definesPresentationContext = YES;
但后来我遇到了以下问题 - 当我按下搜索栏时,它会动画,但呈现的视图只占据屏幕的一部分,在顶部和底部以变暗的铬呈现,而不是全屏呈现。呈现的视图的大小似乎等于承载搜索栏的表格视图之一,只是在屏幕上垂直居中。我对如何覆盖搜索结果的呈现一无所知,以使它们全屏显示。我尝试在呈现视图控制器和正在呈现的视图控制器上显式设置ModalPresentationStyle,但它不起作用。我感觉我需要以某种方式覆盖搜索结果的演示控制器,但我不知道从哪里开始,有什么想法吗?