【问题标题】:swift search Bar and navigation bar will be hidden after startingswift search Bar和导航栏启动后会隐藏
【发布时间】:2016-04-10 14:12:21
【问题描述】:

在我的 swift 2 应用程序中,我有一个带有搜索栏的表格视图:

但是如果点击搜索栏,我的导航栏和搜索栏将被隐藏。

这是我在 viewDidLoad 中的代码

        self.resultSearchController = ({
            let controller = UISearchController(searchResultsController: nil)
            controller.searchResultsUpdater = self
            controller.dimsBackgroundDuringPresentation = false
            controller.searchBar.sizeToFit()
            controller.hidesNavigationBarDuringPresentation = true
            self.MyTable.tableHeaderView = controller.searchBar

            return controller
        })()

一开始我也收到这条消息:

尝试加载视图控制器的视图 不允许解除分配,并可能导致未定义的行为 ()

我的问题是,我的错误在哪里? :/

【问题讨论】:

  • 您是否尝试过为UISearchController 创建一个全局(和强)对象?
  • 您对制作一个全局且强大的对象有何看法?我在开头有这一行:var resultSearchController = UISearchController()

标签: ios swift tableview searchbar


【解决方案1】:

来自this的教程你可以使用这段代码来解决问题。

self.navigationController!.navigationBar.translucent = false
searchController!.hidesNavigationBarDuringPresentation = false

// This makes the view area include the nav bar even though it is opaque.
// Adjust the view placement down.
self.extendedLayoutIncludesOpaqueBars = true
self.edgesForExtendedLayout = UIRectEdge.Top

【讨论】:

    【解决方案2】:

    如果你想让它完美运行,你必须用下面的代码修改你的代码:

            self.resultSearchController = UISearchController(searchResultsController: nil)
            self.resultSearchController.searchResultsUpdater = self
            self.resultSearchController.searchBar.delegate = self
            self.definesPresentationContext = true
            self.resultSearchController.dimsBackgroundDuringPresentation = false
            self.resultSearchController.hidesNavigationBarDuringPresentation = true
            if #available(iOS 11.0, *) {
                self.navigationItem.searchController = self.resultSearchController
            } else {
                self.tableView.tableHeaderView = self.resultSearchController.searchBar
            }
    

    【讨论】:

      猜你喜欢
      • 2021-03-28
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多