iOS 11:在导航项标题视图中嵌入的搜索栏旁边添加其他导航项

Ivy*_*ing 7 uinavigationbar ios swift swift4 ios11

在iOS 11中,我们现在使用

self.navigationItem.searchController = self.searchController
Run Code Online (Sandbox Code Playgroud)

在导航项目标题视图中嵌入搜索栏.但是,这会将其他导航项推送到搜索栏上方,如下所示:

在此输入图像描述

如果不使用自定义容器或回到设置搜索栏的旧方法,我们是否可以将其他导航项目保持在与iOS 11中的搜索栏相同的级别?像这样:

在此输入图像描述

boa*_*moa 1

您可以尝试通过更改取消按钮来实现此目的,如下所示:

let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.showsCancelButton = true
if let view = searchController.searchBar.subviews.first {
    for subview in view.subviews {
        if let myButton = subview as? UIButton {
            // setup button
            myButton.setTitle("", for: .normal)
            let image = UIImage(named: "myImage")
            myButton.setBackgroundImage(image, for: .normal)
        }
    }
}
navigationItem.searchController = searchController
Run Code Online (Sandbox Code Playgroud)