在搜索结果表格视图中,导航栏消失了。

6
我正在尝试将UISearchController放置在导航栏中,并在外部控制器中显示结果。
由于某些原因,当我输入内容时,导航栏会立即消失。
我已经尝试了几个小时的不同解决方案,但没有任何结果。看起来这是一个类似于在UISearchController文本字段中键入时导航栏消失使用UISearchController重新加载数据时导航栏消失的问题,但都没有得到答案。
self.cearchController = ({
        //creating another tableview
        let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
        let alternateController:SearchResultsTableViewController = storyBoard.instantiateViewControllerWithIdentifier("SearchResultsTableViewController") as! SearchResultsTableViewController
        let controller = UISearchController(searchResultsController: alternateController)
        controller.hidesNavigationBarDuringPresentation = false
        controller.dimsBackgroundDuringPresentation = false
        controller.searchResultsUpdater = alternateController
        controller.searchBar.sizeToFit()
        controller.searchBar.placeholder = "Search"

        self.navigationItem.titleView = controller.searchBar


        return controller
    })()

我尝试了以下代码:self.navigationController?.setNavigationBarHidden(true, animated: false),并且在viewdidload中加入了myResultsTableView.definesPresentationContext = true。这是效果图:<>。请注意:我只是几天前开始学习Swift,所以可能会漏掉一些非常明显的东西!谢谢,如果需要,我很乐意添加更多代码。

你可以检查键盘何时出现吗?使用这个:navigationController?.hidesBarsWhenKeyboardAppears = false // 此外,检查此链接http://natashatherobot.com/navigation-bar-interactions-ios8/ - SKYnine
你找到问题的解决方案了吗?我遇到了类似的问题,但是找不到它的根本原因。 - Siddhesh
1个回答

2

我曾经遇到类似的问题,当我的搜索结果显示时导航栏消失了。但是将controller.hidesNavigationBarDuringPresentation = false设置为false就解决了这个问题。

也许可以尝试使用tableView.tableHeaderView = searchController.searchBar而不是self.navigationItem.titleView = controller.searchBar


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接