全屏显示 SearchResultsController

问题描述 投票:0回答:1

我构建了一个搜索页面,其中有一个搜索控制器作为导航项:

func configureSearchBar() {
        navigationItem.searchController = searchController
        searchController.searchBar.delegate = self
        searchController.searchResultsUpdater = self
    }

在 searchController 中,我指定了一个 searchResultsController,它只是一个带有青色背景的空 UIViewController atm:

let searchController = UISearchController(searchResultsController: ResultsTableViewController())

用户开始输入后就会显示 searchResultsController,但由于某种原因,searchResultsController 没有占据全屏,即使我已将模式呈现样式设置为全屏:

func updateSearchResults(for searchController: UISearchController) {
        guard let text = searchController.searchBar.text else { return }
        let resultsController = searchController.searchResultsController as? ResultsTableViewController
        resultsController?.modalPresentationStyle = .fullScreen
        print(text)
    }

应用程序中的外观如下:

如何纠正此问题,以便 searchResultsController 占据整个屏幕,而不像现在一样在搜索栏之间留下间隙?

ios swift uisearchcontroller
1个回答
0
投票

设置 modalPresentationStyle:在 updateSearchResults(for:) 方法中设置 modalPresentationStyle 并不常见。 modalPresentationStyle 通常在模态呈现视图控制器时设置。如果您打算以特定的呈现样式呈现视图控制器,最好在此方法之外执行此操作,可能是在用户选择搜索结果时。

© www.soinside.com 2019 - 2024. All rights reserved.