Swift:进入 UITableView 搜索

Swift: Segue into a UITableView Search

我想将 转入 UITableView 搜索。我已经实现并运行了 uitableview 和搜索栏。现在我想添加一个按钮,单击该按钮时,会打开搜索视图,同时打开键盘。我该如何实施?

挑战:如何将这个按钮放在单独的视图控制器上?

我已经查找了进入搜索栏的方法,但我所找到的只是从搜索中退出的方法。

我的代码:

/*Search*/
var searched: Bool = false
@IBOutlet weak var searchBarReal: UISearchBar!
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    getSortedSectionList()
    tableView.reloadData()
    if searched {
        searchBarReal.becomeFirstResponder()
        searched = false
    }
}
override func viewDidLoad() {
    super.viewDidLoad()
    let nav = self.navigationController?.navigationBar
    nav?.backgroundColor = UIColor.whiteColor()
    nav?.tintColor = UIColor.whiteColor()
    setUpIcons()
    searchBarReal.delegate = self
}

您可以让您的searchBar 成为FirstResponder。

代码示例:

初始视图控制器

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func bttnTouched(sender: AnyObject) {

    performSegueWithIdentifier("next", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {


    if segue.identifier == "next" {

        let nextVc = segue.destinationViewController as! NextViewController
        nextVc.shouldSearchBarRespond = true
    }
}

}

下一个视图控制器

import UIKit

class NextViewController: UIViewController, UISearchBarDelegate {

@IBOutlet weak var searchBar: UISearchBar!

var shouldSearchBarRespond: Bool?

override func viewDidLoad() {
    super.viewDidLoad()

    searchBar.delegate = self

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewWillAppear(animated: Bool) {

    if shouldSearchBarRespond == true {

        searchBar.becomeFirstResponder()
    }
}

}