当前位置: 首页 > 面试题库 >

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

胡彭亮
2023-03-14
问题内容

结构:

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中也会发生。

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


问题答案:

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

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

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

综上所述:

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



 类似资料:
  • 问题内容: 从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有任何关于哪些

  • 我正在寻找一种方法,显示一个div时,一个锚点被点击。我在我的页面上有一个HTML5/PHP表单,当提交时,它会将用户带着一条谢谢消息带到div中放置的锚,这是激活该链接的唯一方法。这是我试图显示的div: 当锚点处于活动状态时,是否有一种方法可以改变(可能使用CSS)显示:none?

  • 问题内容: 我正在一个已实现UI路由器的项目中,当该项目是当前路线时,该项目用于将活动类添加到导航菜单项。但是,当您导航到该视图中的嵌套视图时,父菜单项不再处于活动状态。请参阅以下柱塞: http://plnkr.co/edit/2CoEdS?p=preview 默认情况下(或者如果您单击它),路线1是“活动的”。当您单击“显示列表”时,您将看到Route 1不再处于活动状态。 编辑: 此示例与我

  • 问题内容: 我目前正在使用Laravel应用程序,为了防止垃圾邮件,我决定只有活跃的用户才能登录。我目前正在使用Laravel的登录系统,就像Laravel的官方网站教程中一样,这是我的表单操作: 这完全可以正常工作,但是我想检查用户的活动状态,如果不活动,它将被重定向到激活页面,否则它将登录。有没有简单的方法可以执行此操作,或者我有义务制造新的控制器,路由和进行更多验证?谢谢。 编辑:忘记提及我

  • 我正在Android上使用Firebase云消息。 当应用程序位于前台时,我可以成功接收通知和数据消息 文档说明,如果在应用程序处于后台时收到通知消息,则Firebase将代表应用程序向系统托盘发送通知。这对我不起作用 如果发送了数据消息且应用程序位于后台,则会成功调用onMessageReceived方法 最麻烦的情况是,我强制停止应用程序,然后尝试发送通知或数据消息。在这种情况下,不会调用on

  • 我有一个JavaFX TableView定义为: 它由一个ObservableList支持: