2016-11-16 1 views
1
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 
} 

} 

EXC_BAD_ACCESS으로 tableView.reloadData()에 충돌했습니다. 그리고 난 그 문제가 UIView에 searcher를 추가하여 발생하는 것으로 나타났습니다.uitableviewcontroller의 두 번째 섹션에 검색 창을 추가하십시오.

그래서 어떤 해결책이 있습니까? 첫 번째 섹션 대신 두 번째 섹션 헤더에 검색 막대를 구현하고 싶습니다.

+0

어디서 tableview에 대한 데이터 소스를 올바르게 설정하고 있습니까? https://www.raywenderlich.com/113772/uisearchcontroller-tutorial – Vinodh

+0

의'tableHeaderView'와'sectionHeader' 두 가지 모두가 다른 링크에서 UIsearchbar 튜토리얼을보십시오. –

답변

1

UISearchBarviewDidLoad으로 설정하십시오. 그 후에 :

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