的UISearchBar停留在NavigationController按后退按钮

问题描述:

后,我有连接到UINavigationController一个UISearchBar,当我点击了提交UIViewController其中包含UISearchBar它并不如我所料消失的后退按钮,它会保持仍然附着在导航栏并出现在父视图控制器上。的UISearchBar停留在NavigationController按后退按钮

这里是我的UISearchBar声明:

lazy var searchBar: UISearchBar = { 
    let sb = UISearchBar() 
    sb.placeholder = "Search" 

    UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = UIColor.rgb(red: 230, green: 230, blue: 230) // cor de fundo da search bar 
    sb.delegate = self 
    return sb 
}() 

以下是我附上UISearchBarUINavigationController

navigationController?.navigationBar.addSubview(searchBar) 

我试着TI呼吁viewWillDisappearsearchBar.removeFromSuperview(),但它并没有奏效。

任何提示?

谢谢

+0

尝试用'self.navigationItem.titleView = searchBar'添加和删除用于'self.navigationItem.titleView = nil' –

+0

它的工作,但不知何故,当我推NAV-C再我的搜索栏的背景颜色消失,但我认为这是一个不同的问题。谢谢 –

使用self.navigationItem.titleView = searchBar添加的,而不是navigationController?.navigationBar.addSubview(searchBar)搜索栏,当你需要删除它,然后由另一UIView更换titleview的或使其=零

添加

self.navigationItem.titleView = searchBar 

删除

self.navigationItem.titleView = UIView()