为什么每次点击搜索栏时导航栏都会消失?

问题描述

我在导航栏标题视图中添加一个搜索栏。搜索显示正确且在搜索和检索结果时工作正常。

但是每次我点击搜索栏输入查询时,整个导航栏都会消失,不再可见。如果我然后向下拖动视图,它会重新出现。虽然在视图之外,我仍然可以输入和搜索并查看结果,但整个导航栏不在视图中。

代码上下文:我正在使用 Algolia 搜索 SDK 从 google firestore 查询数据。然后将命中添加到结果表视图控制器。

import UIKit
import Foundation
import InstantSearch


class AlgoliaViewController: UIViewController,UISearchBarDelegate {



let userHitsInteractor: HitsInteractor<User> = .init(infiniteScrolling: .off,showItemsOnEmptyQuery: false)
let businessHitsInteractor: HitsInteractor<Business> = .init(infiniteScrolling: .off,showItemsOnEmptyQuery: false)

let multiSearch = MultiIndexSearcher(appID: APP_ID,apiKey: KEY,indexNames: ["dev_USERS","dev_BUSInesS"])
lazy var multiConnector: MultiIndexSearchConnector = .init(searcher: multiSearch,indexModules: [
    .init(indexName: "dev_USERS",hitsInteractor: userHitsInteractor),.init(indexName: "dev_BUSInesS",hitsInteractor: businessHitsInteractor)
  ],searchController: searchController,hitsController: hitsTableViewController)


  lazy var searchController: UISearchController = .init(searchResultsController: hitsTableViewController)


let hitsTableViewController = MultiIndexController()
  let statsInteractor: StatsInteractor = .init()

override func viewDidLoad() {
    super.viewDidLoad()

    multiConnector.connect()
    multiSearch.search()
    statsInteractor.connectController(self)
    setupUI()
}

func setupUI() {
    view.backgroundColor = .white

    //navigationItem.searchController = searchController
    
    navigationItem.titleView = searchController.searchBar
    
    navigationController?.navigationBar.backgroundColor = .white
    navigationController?.navigationBar.isTranslucent = false
    navigationController?.hidesBarsOnSwipe = false
    
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.showsSearchResultsController = true
    searchController.automaticallyShowsCancelButton = false
    searchController.searchBar.delegate = self
    searchController.obscuresBackgroundDuringPresentation = false
    
    hitsTableViewController.view.backgroundColor = .white
}

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
    searchController.isActive = true
}

func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
    searchController.isActive = false
}

}

目前已注释掉,但在我尝试之前:

navigationItem.searchController = searchController

这并没有表现出相同的问题,但是就用户界面而言,导航栏似乎最终更高,搜索栏首尾相连地位于栏下方并且与导航栏按钮不对齐,因此看起来很奇怪。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...