一尘不染

当UISearchController处于活动状态时,iOS 9 searchBar从表标题视图中消失

swift

结构:

View1(单击按钮)->模态显示(MyModalView:UITableViewController)

MyModalView嵌入了UISearchController。
UISearchController 的searchBar 放在MyModalView.tableView.tableHeaderView中。

自iOS 8.0起,它一直运行良好。但是在iOS 9上,
当UISearchController处于活动状态时,searchBar 消失。请在
下面看这些照片

模态视图:模态视图

在iOS 8上有效的UISearchController:iOS 8中的搜索栏

在iOS 9上有效的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中也会发生。

任何想法/指针将不胜感激


阅读 212

收藏
2020-07-07

共1个答案

一尘不染

似乎我们每个人都遇到了相同的问题,但是解决
方法不同。但是,没有建议的答案对我有用:(。尽管如此,
感谢您的宝贵时间。

我有解决问题的解决方案。它正在 使用Interface Builder

情节提要中将我的(MyModalView:UITableViewController)的Extend Edges-Under Opaque Bars 设置为true 。

综上所述:

MyModalView:UITableViewController,在使用Interface Builder的情节提要中具有

2020-07-07