我有一個UISearchController
UISearchBar
在NavigationBarTitleView
。當您開始輸入SearchBar
時,會出現一個ResultsTableView
。在打字時有一個取消按鈕出現在SearchBar
旁邊,它正確地取消了TableView
。到現在爲止還挺好。iOS UISearchController TableView
場景的主視圖控制器是TableViewController
,它連接到TabBarController
中的NavigationController
。
現在,一切工作正常,除了當顯示ResultsTableView
,你離開那個屏幕(通過tabBar
),當你回來時屏幕變黑。
我想我需要在導航時忽略resultsTableView
以防止發生這種情況(就像我在結果中觸發了一段時間時所做的那樣),但是我無法使其工作。
下面是一些代碼:
class PCFeedTableViewController: UITableViewController, UISearchBarDelegate, UISearchResultsUpdating, UISearchControllerDelegate {
let searchController = UISearchController(searchResultsController: PCSearchTableViewController())
func updateSearchResultsForSearchController(searchController: UISearchController) {
let resultsTable = searchController.searchResultsController as! PCSearchTableViewController
resultsTable.tableView.frame.origin = CGPoint(x: 0, y: 64)
resultsTable.tableView.frame.size.height = self.tableView.frame.height - 113
resultsTable.tableView.tableHeaderView = nil
resultsTable.tableView.contentInset = UIEdgeInsetsZero
resultsTable.tableView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
resultsTable.parentController = self
resultsTable.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "searchResultCell")
}
...
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.scrollsToTop = true
self.searchController.searchResultsUpdater = self
self.searchController.searchBar.delegate = self
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.searchBar.sizeToFit()
self.searchController.searchBar.placeholder = "Search for Movies or TV Shows"
self.searchController.searchBar.searchBarStyle = UISearchBarStyle.Minimal
self.searchController.searchBar.barStyle = UIBarStyle.Black
UILabel.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).textColor = UIColor.lightTextColor()
UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).textColor = UIColor.whiteColor()
self.navigationItem.titleView = searchController.searchBar
}
...
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destinationViewController = segue.destinationViewController as! PCMainDetailsTableViewController
self.searchController.searchResultsController?.dismissViewControllerAnimated(true, completion: nil)
self.searchController.searchBar.text = nil
destinationViewController.title = searchResult.title
destinationViewController.movie = searchResult
}
}
我想,剛纔......還是一樣的
viewDidDisappear
方法。 http://s13.postimg.org/hc8k4skzb/Simulator_Screen_Shot_10_Dec_2015_13_18_07.png –所以,我想它的工作,是吧?你有沒有改變任何其他? – Losiowaty
其實我貼了我所做的,但這也幫助 –