ios - 如何在 navigationBar (UITableView) swift 下添加 SearchController.searchBar

标签 ios swift uitableview uisearchbar uisearchcontroller

我尝试在导航栏下添加 SearchController.searchBar。

override func viewDidLoad() {
        super.viewDidLoad()
        searchController = UISearchController(searchResultsController: nil)
        searchController.searchResultsUpdater = self
        searchController.searchBar.sizeToFit()
        searchController.hidesNavigationBarDuringPresentation = false
        searchController.delegate = self
        searchController.dimsBackgroundDuringPresentation = false //
        searchController.searchBar.delegate = self
        let SearchFrame = CGRectMake(0,(self.navigationController?.navigationBar.frame.height)!, (self.navigationController?.navigationBar.frame.width)!,searchController.searchBar.frame.height)
        searchController.searchBar.frame = SearchFrame
        self.navigationController?.navigationBar.addSubview(searchController.searchBar)
}

这段代码在navigationBar下添加了一个searchBar,但是searchBar检测不到用户交互!我无法点击搜索文本输入字段!!我做错了什么?

最佳答案

试试这个。对我有用

    var SearchFrame : CGRect?
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let searchController = UISearchController(searchResultsController: nil)
        searchController.searchResultsUpdater = self
        searchController.searchBar.sizeToFit()
        searchController.hidesNavigationBarDuringPresentation = false
        searchController.delegate = self
        searchController.dimsBackgroundDuringPresentation = false //
        searchController.searchBar.delegate = self
        SearchFrame = CGRectMake(0,(self.navigationController?.navigationBar.frame.height)!, (self.navigationController?.navigationBar.frame.width)!,searchController.searchBar.frame.height)
        searchController.searchBar.frame = SearchFrame!
        self.navigationController?.navigationBar.addSubview(searchController.searchBar)


    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        var navbarFrame = self.navigationController!.navigationBar.frame
        navbarFrame.size = CGSize(width: navbarFrame.width, height: navbarFrame.height + SearchFrame!.height)
        self.navigationController?.navigationBar.frame = navbarFrame
    }

关于ios - 如何在 navigationBar (UITableView) swift 下添加 SearchController.searchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37630704/

相关文章:

ios - 回复按钮导致崩溃

Swift NSDate 获取当前日期但去除年、月和日

swift - UITableViewCell 转至另一个 UITableViewCell 未运行 - 委托(delegate)为 NIL

iphone - 如何访问 UITableView subview 选择?

ios - iOS 7 上的 UINavigationBar Flash

ios - 数组支持任何类型的值

ios - 我有一个 2 按钮 UIAlertView,我怎么知道按下了哪个按钮?

ios - Swift Storyboard - 水平居中图标和多行文本

ios - 快速为 tableView 部分和 tableView 单元格填充一个数组

swift - 当 uitableviewcell 被点击时,序列到 viewcontroller 并用所选单元格中的文本快速填充 uitextfield