我正在尝试在我的 UITabBarController 中的一个选项卡中实现一个搜索栏,该选项卡是 UINavigationController 中的一个 UITableViewController ...我正在关注 Apple 教程 - 我尝试了很多不同的选项,包括此处提到的答案
我尝试使用以下属性设置
self.definesPresentationContext = true
或
self.tabBarController?.definesPresentationContext = true
这是我的代码(来自包含 UISearchBar 的 UITableViewController):
/// Search controller to help us with filtering.
var searchController: UISearchController!
/// Secondary search results table view.
var resultsTableController: SearchResultsTableController!
override func viewDidLoad() {
super.viewDidLoad()
resultsTableController = SearchResultsTableController()
resultsTableController.tableView.delegate = self
searchController = UISearchController(searchResultsController: resultsTableController)
searchController.searchResultsUpdater = self
searchController.searchBar.sizeToFit()
self.tableView.tableHeaderView = searchController.searchBar
searchController.delegate = self
searchController.dimsBackgroundDuringPresentation = true
searchController.searchBar.delegate = self // so we can monitor text changes
self.definesPresentationContext = true
}
这是搜索栏的图片:
最佳答案
好的,问题终于解决了。这条线让它工作
self.extendedLayoutIncludesOpaqueBars = true
我的 TabBar 不是半透明的,所以我认为这不会有什么不同,但我在我的 UITableviewcontroller(显示 UISearchController 的 Controller )上设置了它,现在导航栏中的搜索显示正确。我还将顶部和底部栏下的延伸边缘设置为 true(使用 Interface Builder)
关于ios - 在 UITabBarController 中使用 UINavigationController 时,UISearchBar 被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34170729/