2016-07-11 17 views
2

私は自分のテーブルビューヘッダーに検索バーを持っています。そのために私はuisearchcontrolerを使用しています。しかし、私は検索バーでテキストを表示しているときにtablviewデータを更新します。キーボードの検索ボタンをクリックするとtablviewを更新する必要があります。どのように私はこれを解決できますか?キーボードで検索ボタンをクリックしたときの検索方法は?

var resultSearchController = UISearchController() 
var indicator:UIActivityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray) 
var ref=UIRefreshControl() 
override func viewDidLoad() { 
    super.viewDidLoad() 


    self.resultSearchController = ({ 
     let controller = UISearchController(searchResultsController: nil) 
     controller.searchResultsUpdater = self 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 

     self.tableView.tableHeaderView = controller.searchBar 

     return controller 
    })() 

    indicator.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
    indicator.center = view.center 
    view.addSubview(indicator) 
    indicator.bringSubviewToFront(view) 

    indicator.startAnimating() 
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true 

    getRequests.getType1(tableView,spinner: indicator) 

    ref.addTarget(self, action: #selector(Catalog1TableViewController.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged) 
    ref.attributedTitle = NSAttributedString(string: "Загрузка") 
    tableView.addSubview(ref) 

} 


func updateSearchResultsForSearchController(searchController: UISearchController) 
{ 
    indicator.startAnimating() 
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true 
    tableView.reloadData() 
    getRequests.getProduct(tableView, spinner: indicator,name: searchController.searchBar.text!) 
    for item in getRequests.product { 
     if item.productTitle.containsString(searchController.searchBar.text!){ 
      filteredTableData.append(item) 
     } 

    } 
    tableView.reloadData() 
} 

答えて

3

はUISearchBarデリゲートメソッドを実装するようにしてください:

func searchBarSearchButtonClicked(searchBar: UISearchBar) 
+0

searchcontrollerを使用しているため動作しません –

0

あなたはあなたのビューコントローラでは、このような何かを実装する必要があります。

var resultSearchController = UISearchController() 
resultSearchController.searchBar.delegate = self 

extension ViewController: UISearchBarDelegate { 
    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 
     print("search button click") 
    } 
} 
関連する問題