Die Dokumentation für UISearchController
besagt, dass Sie - searchBar
überschreiben können, um eine benutzerdefinierte Unterklasse von UISearchBar
für den zu verwendenden Controller bereitzustellen. Die benutzerdefinierte Suchleiste wird verwendet, und ihre eigenen Delegatmethoden werden korrekt aufgerufen, aber die UISearchResultsUpdating
-Methode wird nicht mehr aufgerufen, wenn sich die Suchleiste ändert. Muss ich viele Dinge manuell vornehmen, oder fehlt mir etwas, damit sich der Controller verhält wie bei einer nativen Suchleiste?
Dies ist ein bekannter Fehler. Leider gibt es keine Problemumgehung, die keine private API beinhaltet.
Überschreibt den SearchBar-Getter in Ihrer benutzerdefinierten UISearchController-Klasse. Er muss Ihre benutzerdefinierte SearchBar zurückgeben und muss bereits initialisiert sein. Anschließend richten Sie seine Eigenschaften erst nach dem UISearchController-Befehl ein. Auf diese Weise werden alle UISearchController-Funktionen beibehalten:
%Vor%Und das ist meine benutzerdefinierte searchBar:
%Vor%Init-Beispiel:
%Vor%Ich denke, es sollte sich so verhalten.
Dies ist von UISearchController.h
%Vor%Die Delegate-Methode (updateSearchResultsForSearchController :) gibt den Such-Controller zurück, damit Sie auf die Suchleiste zugreifen können.
Sie können dies einfach über die Delegatmethoden für benutzerdefinierte Suchleisten tun.
Tags und Links ios uisearchbar ios8 uisearchcontroller