使用搜索栏控制器时如何始终显示导航栏项目?

时间:2021-06-15 13:07:47

标签: ios swift uinavigationcontroller searchbar

*任何人都知道我们如何在与 searchbarcontroller 一起使用时始终显示导航栏项目(例如完成)? #编辑1

import Foundation
import UIKit
class TradeSelectionController: UITableViewController, UISearchResultsUpdating, UISearchBarDelegate  {
    
    var searchController : UISearchController!
    var isSearching = false
    override func viewDidLoad() {
        super.viewDidLoad()
        addCancelBarItemWithBackButton(.present)
        setup()
        searchBarSetup()
    }
    func searchBarSetup() {
        tableView.allowsMultipleSelection = true
        tableView.estimatedRowHeight = tableView.rowHeight
        tableView.rowHeight = UITableView.automaticDimension
        
        searchController = UISearchController(searchResultsController: nil)
        searchController.searchResultsUpdater = self
        searchController.searchBar.delegate = self
        searchController.obscuresBackgroundDuringPresentation = false
        searchController.searchBar.autocapitalizationType = .none
        searchController.searchBar.showsCancelButton = false
        navigationItem.searchController = searchController
        navigationItem.hidesSearchBarWhenScrolling = true
    }
 
    private func setup() {
        
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "TradeSelectionTableViewCell")
        tableView.separatorStyle = .none
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneAction))
        self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelAction))
    }
    func updateSearchResults(for searchController: UISearchController) {
        *if searchController.isActive {
          print("search controller active")
        }else{
                dismiss(animated: true, completion: nil)
        }
        tableView.reloadData()*
    }
    @objc private func cancelAction(_ sender: Any?) {
        dismiss(animated: true, completion: nil)
    }
    @objc private func doneAction(_ sender: Any?) {
        dismiss(animated: true, completion: nil)
    }
    
}

我使用代码使用 searchbarcontroller,任何人都知道更好的方法。 谢谢*

0 个答案:

没有答案