如何在快速用搜索栏替换 self.navigationItem.titleView 后将其放入标题

Posted

技术标签:

【中文标题】如何在快速用搜索栏替换 self.navigationItem.titleView 后将其放入标题【英文标题】:How to put self.navigationItem.titleView with title after replace it with searchbar in swift 【发布时间】:2017-06-11 09:25:44 【问题描述】:

我有搜索栏,当点击图片时,它会在顶部导航创建搜索栏,替换为标题。然后当在搜索栏外点击时,标题不再显示,它仍然带有搜索栏(文本字段),如果在搜索栏外点击或点击,如何再次显示标题?

这是在顶部导航创建搜索栏的代码,替换为标题。

func createSearchBar()
    searchBar.sizeToFit()
    searchBar.showsCancelButton = false
    searchBar.placeholder = "Enter key"
    searchBar.delegate = self
    self.navigationItem.titleView = searchBar

这是在搜索栏外点击时的代码

extension ViewCon 
func hideKeyboardWhenTappedAround() 
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewCon.dismissKeyboard))
    view.addGestureRecognizer(tap)


func dismissKeyboard() 
    self.searchBar.resignFirstResponder()
 self.navigationController?.navigationBar.topItem?.title="Title List"

但我想如何再次在顶部导航中显示标题?

【问题讨论】:

问一个好问题请添加代码 我更新我的问题 【参考方案1】:

您需要将其设置为nil

self.navigationItem.titleView = nil

见:https://developer.apple.com/reference/uikit/uinavigationitem/1624935-titleview

【讨论】:

谢谢它的工作..我花时间..我已经创建了新框架..但是你的代码只有一行..非常感谢..你拯救了我的一天.. 欢迎您。只需查看GitHub Search for: "navigationItem.titleView = nil" language:swift的搜索结果@ 我想再问一个问题,我有tableview,当我再次向下和向上滚动时,单元格中的图像和标签会丢失并消失。你知道为什么吗? 请搜索 *** 或 google,然后创建一个新问题 :) 我认为您的问题出在 cellforrowatindexpath

以上是关于如何在快速用搜索栏替换 self.navigationItem.titleView 后将其放入标题的主要内容,如果未能解决你的问题,请参考以下文章

如何快速创建两个搜索栏?

谷歌和雅虎如何替换浏览器状态栏中的 URL?

如何用 UISearchBar 替换导航栏?

从暗模式快速切换到亮模式时如何修复搜索栏

怎样搜索或替换换行符?

使搜索功能快速响应 ui 搜索栏中键入的文本 [swift]