J'ai un UitailViewController CODE> CLASSE dans lequel je suis implémentant un
UisearchController code>. J'ai ajouté les délégués suivants:
"Type 'CustomTableViewController' does not conform to protocol UISearchResultsUpdating"
3 Réponses :
Lorsque vous ajoutez des protocoles à votre définition de classe, le moyen le plus simple est de souris sur le nom du protocole et la commande Cliquez sur son nom. Cela tirera sa définition. Avec les définitions de protocole, ils ont généralement des méthodes immédiatement les suivantes. Si une méthode est requise, il sera en haut, s'il est facultatif à l'avant, il n'est pas nécessaire de se conformer.
Dans le cas de `UisearchResultsUndating, il n'a qu'une méthode et il est nécessaire. Copiez simplement la méthode, ou plusieurs méthodes et cliquez sur la flèche arrière pour revenir à votre classe. Coller les méthodes dans votre classe et les mettre en œuvre. S'ils étaient des méthodes facultatives (dans ce cas, il n'y a pas de méthodes facultatives), supprimez la facultative de l'avant. C'est ce que j'ai copié de la définition. P> alors vous la mettez à jour pour faire ce que vous voulez faire. P> func updateSearchResultsForSearchController(searchController: UISearchController) {
//do whatever with searchController here.
}
SWIFT 3:
func updateSearchResults(for searchController: UISearchController) { // code here }
Comment répondre - veuillez le lire avant de poster.
Hey @agatab, votre lien références L'URL incorrecte - devrait être Comment répondre
Je ne sais pas que le problème est - pour rendre le contrôleur est conforme au protocole, la syntaxe de la méthode requise à Swift 3 a changé selon ce qui précède.
SWIFT 3.0
//Make sure to import UIKit import Foundation import UIKit class ViewController: UIViewController, UISearchBarDelegate { var searchController = UISearchController() override func viewDidLoad() { //Setup search bar searchController = UISearchController(searchResultsController: nil) searchController.dimsBackgroundDuringPresentation = false definesPresentationContext = true //Set delegate searchController.searchResultsUpdater = self //Add to top of table view tableView.tableHeaderView = searchController.searchBar } } extension ViewController: UISearchResultsUpdating { func updateSearchResults(for searchController: UISearchController) { print(searchController.searchBar.text!) } }
DéfinitPrésentationContext = true code> était quelque chose d'important que j'étais manquant. Ne répond pas à la question, mais aide. Merci d'avoir partagé.
Avez-vous une classe nommée "CustomTableViewController"?