【发布时间】:2015-12-17 16:22:12
【问题描述】:
结构:
View1(单击按钮)-> 模态显示(MyModalView: UITableViewController)
MyModalView 嵌入了 UISearchController。 UISearchController的searchBar放在MyModalView.tableView.tableHeaderView中。
自 iOS 8.0 以来一直运行良好。但是在 iOS 9 上,当 UISearchController 处于活动状态时,searchBar 会消失。请看下面的这些图片
UISearchController 在 iOS 8 上处于活动状态:
UISearchController 在 iOS 9 上处于活动状态:
非常标准的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Dynamically create a search controller using anonymous function
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.delegate = self
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
// Auto sizing row & cell height
self.tableView.estimatedRowHeight = 130
self.tableView.rowHeight = UITableViewAutomaticDimension
self.definesPresentationContext = true
// No footer for better presentation
self.tableView.tableFooterView = UIView.init(frame: CGRectZero)
}
这个问题也发生在 iOS 9.1 beta 中......
任何想法/指针将不胜感激
干杯。
【问题讨论】:
-
对我来说,这只发生在设备上(不在模拟器中)。
-
嗨@IanDundas 我在下面发布了我的答案你想试试看它是否能解决你的问题?
-
是的,实际上@Shwethascar 修复了它很幸运 - 不过还是谢谢。只是为其他人添加一些上下文,它只发生在我的实际设备上。
-
试试 searchController.hidesNavigationBarDuringPresentation = false
标签: ios swift uisearchbar ios9 uisearchcontroller