按下后退按钮后,UISearchBar停留在NavigationController上

时间:2017-08-26 04:58:57

标签: ios swift3 uisearchbar

我有UISearchBar附加到UINavigationController,当我点按提交的UIViewController的后退按钮时,其中包含UISearchBar,它不会消失为我预计,它仍会保持连接到导航栏并显示在父视图控制器上。

这是我的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
}()

以下是我将UISearchBar附加到UINavigationController

的方法
navigationController?.navigationBar.addSubview(searchBar)

我尝试在searchBar.removeFromSuperview()上致电viewWillDisappear,但它没有效果。

任何提示?

谢谢

1 个答案:

答案 0 :(得分:1)

使用self.navigationItem.titleView = searchBar添加搜索栏而不是navigationController?.navigationBar.addSubview(searchBar),当您需要删除它时,请将titleView替换为另一个UIView或将其设为= nil

添加

self.navigationItem.titleView = searchBar

删除

self.navigationItem.titleView = UIView()