在uitableviewcontroller的第二部分添加搜索栏

时间:2016-11-16 03:13:20

标签: ios swift

class SelectionBoxViewController: UITableViewController,UISearchBarDelegate {
var searchbar = UISearchBar()

override func viewDidLoad() {
    super.viewDidLoad()
    searchbar.delegate = self
}

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {   
    tableView.reloadData()
}  

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
 if(section == 1){
    tableView.tableHeaderView = searchbar
        let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 100))
    view.addSubview(searchbar)
        searchbar.sizeToFit()
    return view
    }
    return nil
}

}

它在tableView.reloadData()EXC_BAD_ACCESS时崩溃。我发现问题是由UIView中添加搜索者引起的。

那么有什么办法解决这个问题吗?我想在第二部分标题而不是第一部分标题中实现搜索栏。

1 个答案:

答案 0 :(得分:1)

UISearchBar中配置viewDidLoad。 之后:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    if(section == 1) {
       return searchBar
    } else {
       return nil
    }