UISearchController provoca la pantalla negra Swift 2.0

Tengo un extraño problema en iOS 9 con Swift 2.0 . UISearchController en my tableViewController pero causa un extraño problema de pantalla negra . Cuando presiono la barra de búsqueda y escribo algo, muestra mis resultados filtrados sin ningún problema, pero cuando presiono otro button de barra de tabs como Marcadores y después cuando presiono tableViewController, que es Más visto nuevamente, muestra una pantalla negra como una captura de pantalla.

Hay mi tableViewController ;

 import UIKit class CitiesTableViewController: UITableViewController, UISearchResultsUpdating { // MARK: - Class Properties private var cities = [String]() private var veterinaries = [Veterinary]() private var filtenetworkingVeterinaries = [Veterinary]() private var resultSearchController: UISearchController! // MARK: - TableViewController Life Cycle Methods override func viewDidLoad() { super.viewDidLoad() self.getCitiesList() self.configureResultsSearchController() } override func viewDidDisappear(animated: Bool) { super.viewDidDisappear(animated) self.resultSearchController.active = false } // MARK: - Configuring Search Bar Controller private func configureResultsSearchController() { self.resultSearchController = UISearchController(searchResultsController: nil) self.resultSearchController.searchResultsUpdater = self self.resultSearchController.dimsBackgroundDuringPresentation = false self.resultSearchController.hidesNavigationBarDuringPresentation = false self.resultSearchController.searchBar.sizeToFit() self.resultSearchController.searchBar.placeholder = "Klinik veya ilçe adı" self.tableView.tableHeaderView = self.resultSearchController.searchBar } // MARK: - Table view data source override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if self.resultSearchController.active { return self.filtenetworkingVeterinaries.count } else { return self.cities.count } } // MARK: - Table view Delegate Methods override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { if (self.resultSearchController.active) { self.performSegueWithIdentifier(Constants.ShowDetailViewControllerSegueIdentifier, sender: nil) } else { self.performSegueWithIdentifier(Constants.ShowTownsTableViewControllerSegueIdentifier, sender: nil) } } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier(Constants.CellIdentifier, forIndexPath: indexPath) if (self.resultSearchController.active) { cell.textLabel?.text = self.filtenetworkingVeterinaries[indexPath.row].name cell.detailTextLabel?.text = self.filtenetworkingVeterinaries[indexPath.row].address return cell } else { cell.textLabel?.text = self.cities[indexPath.row] return cell } } // MARK: - PARSE Query Methods private func getCitiesList() { let parseQueries = ParseQueries() parseQueries.downloadListData() { (let parseResults) in if let veterinaries = parseResults as? [Veterinary] { self.veterinaries = veterinaries for vet in veterinaries { if let city = vet.city { self.cities.append(city) } } dispatch_async(dispatch_get_main_queue()) { self.cities = HelperMethods().removeDuplicatesAndSort(array: self.cities) self.tableView.reloadData() } } } } // MARK: - UISearchController Delegate Methods func updateSearchResultsForSearchController(searchController: UISearchController) { self.filtenetworkingVeterinaries.removeAll(keepCapacity: false) if let searchBarText = searchController.searchBar.text{ let searchText = searchBarText.lowercaseString // Searching with Veterinary Name and Veterinary City self.filtenetworkingVeterinaries = self.veterinaries.filter({$0.name?.lowercaseString.rangeOfString(searchText) != nil}) self.filtenetworkingVeterinaries += self.veterinaries.filter({$0.town?.lowercaseString.rangeOfString(searchText) != nil}) tableView.reloadData() } } 

Esta es la image de la pantalla negra del simulador de iOS 9 igual que el dispositivo real. introduzca la descripción de la imagen aquí

Creo que está desinhabilitando mi tableView cuando toco el searchBar y no puede iniciar de nuevo. ¿Esto es un error o algo así?

Como puedó resolver esté problema ?

Gracias !

Amigo, en su vista, viewDidLoad() inserte esta línea de código:

 self.definesPresentationContext = true 

Vea cómo puse (línea 29):

haga clic aquí para ver

Hace poco me enfrenté al mismo problema y pude solucionarlo fácilmente. self.definesPresentationContext = true ya estaba definido en viewDidLoad () pero no solucionó este problema.

En la pregunta anterior, tal vez muestre CitiesTableViewController directamente cuando toca el elemento de la barra de tabs MostViewed.

Para evitar la pantalla negra, puede incrustar CitiesTableViewController en un UINavigationController y tratar de mostrar el control del browser al tocar el elemento de la barra de tabs.

Esta solución evitará el problema de la pantalla negra.