swift搜索栏和导航栏将在启动后隐藏

问题描述 投票:0回答:2

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

enter image description here

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

enter image description here

这是我在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
        })()

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

尝试在取消分配时加载视图控制器的视图是不允许的,并且可能导致未定义的行为()

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

ios swift tableview searchbar
2个回答
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

1
投票

如果要使其完美运行,您必须使用以下代码修改代码:

        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
        }
© www.soinside.com 2019 - 2024. All rights reserved.