我有一个工作的tableview,我实现了UISearchController。现在我想在搜索操作开始之前和之后显示2个不同的tableviews,例如instagram,twitter。我想显示一个不同的tableview,将最近的搜索显示为列表。
我的故事板设置是:
- > tabbar - > navbar - > SearchResultsTableViewController - > navbar - > recentSearchesTableView
我在searchResultsTableView中有一个searchBar。
class SearchResultsTableViewController: UITableViewController, SearchTableViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if ((self.searchResults?.count) == 0) {
performSegueWithIdentifier("ShowSearchView", sender: self)
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowSearchView" {
if let destinationNavigation = segue.destinationViewController as? UINavigationController {
if destinationNavigation.viewControllers.count > 0 {
if let searchVC = destinationNavigation.viewControllers[0] as? SearchTableViewController {
searchVC.delegate = self
}
}
}
}
}
有没有办法在不使用segues的情况下实现这个目标?
答案 0 :(得分:1)
您可以根据用户在搜索栏上键入的内容更改主表视图内容,而不将其发送到另一个视图,但我不知道您是否要显示2个表而不是一个,例如,如果搜索者为空,表格视图可以显示最近的搜索,如果不是,表格显示与搜索栏内容相关的内容,您能更具体吗?
答案 1 :(得分:1)
我同意@Luis Perez,不要使用两个表格。
继承人我会做什么
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if indexPath.section == 0 {
return recentSearches.count
} else {
if searchController.active && searchController.searchBar.text! != "" {
return searchResults.count
}
return 0
}
}
注意:因为我知道你想要使用2个表格,所以你可以让截面分割看起来像你想要的