gpt4 book ai didi

ios - 搜索处于事件状态时导航栏问题并推送到下一个 View Controller

转载 作者:搜寻专家 更新时间:2023-10-31 22:39:15 25 4
gpt4 key购买 nike

我遇到了导航栏问题。我在 navigationItem 的搜索 Controller 中添加了 searchController

查看以下链接中的图片: navigation bar issue

步骤:

1) 我在 TableView 中有数据,当我单击单元格时,它会打开带有自定义导航 View 的详细信息屏幕。这工作正常。 (默认导航栏是隐藏的)

2) 现在,我点击了搜索栏,然后点击了表格 View 单元格。它向我展示了详细信息屏幕的默认导航栏。我不想显示默认导航栏。

我为实现搜索 Controller 编写的代码如下:

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search here..."

searchController.searchBar.tintColor = .white
searchController.searchBar.barTintColor = .white

if let textfield = searchController.searchBar.value(forKey: "searchField") as? UITextField {

textfield.textColor = UIColor.blue

if let backgroundview = textfield.subviews.first {

// Background color
backgroundview.backgroundColor = UIColor.white

// Rounded corner
backgroundview.layer.cornerRadius = 10;
backgroundview.clipsToBounds = true;
}
}

self.navigationItem.searchController = self.searchController

definesPresentationContext = true

下面是在 didSelect 方法中隐藏导航栏的代码:

self.navigationController?.navigationBar.isHidden = true
self.navigationController?.isNavigationBarHidden = true

最佳答案

我遇到了同样的问题。尽管我在 viewWillAppear() 中隐藏了导航栏,但当搜索 Controller 在上一个 View 中处于事件状态时,似乎有些东西使导航栏可见。

我通过在 viewWillLayoutSubviews() 中再次隐藏导航栏解​​决了这个问题:

override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
navigationController?.setNavigationBarHidden(true, animated: false)
}

关于ios - 搜索处于事件状态时导航栏问题并推送到下一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51402566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com