Ich verwende einen UITableViewController mit einer UISearchBar. Alles scheint gut zu funktionieren, außer dass ich in der textDidChange
-Methode eine seltsame Warnung erhalte, die ich noch nie zuvor gesehen habe.
Das ist mein Code:
%Vor% Beim Durchlaufen des Programms habe ich festgestellt, dass die Warnung kurz vor dem Ende von textDidChange
auftritt. Wie ich bereits im Titel erwähnt habe, lautet die Warnung:
Nach der Wiederverwendung sind alle sichtbaren Ansichten übrig: { (null) = (null); }
Weiß jemand, warum das passiert und wie man es löst?
Ich hatte ein ähnliches Problem mit einer Abschnittsüberschriftsansicht mit einer benutzerdefinierten UITextField
. Ich habe die Warnung losgelöst, indem ich resignFirstResponder
für das Textfeld aufruft, bevor ich die Tabellenansichtsdaten neu lade, und becomeFirstResponder
nach der Neuladeoperation aufruft. Etwas wie:
Während die andere Antwort den Fehler beseitigte, der in die Konsole gesetzt wurde, hatte sie auch einige unbeabsichtigte Konsequenzen. Hauptsächlich ruft resignFirstResponder und dannFirstResponder auf diese Weise den Zustand der Tastatur zurück. Wenn Sie also einen Buchstaben eingeben, wird die Tastatur von Numerisch auf Alpha zurückgesetzt. Dies wird ärgerlich, wenn Sie versuchen, eine Zeichenfolge aus Buchstaben einzugeben.
In meinem Fall habe ich festgestellt, dass der There are visible views left after reusing them all: { (null) = (null); }
-Fehler nur protokolliert wurde, wenn ich meine UISearchBar auf den Header der TableView-Sektion gesetzt hatte. Ich tat dies, um die Suchleiste oben auf einem UITableViewController zu halten.
Stattdessen habe ich einen UIViewController umgestaltet, die UISearchBar oben und die UITableView darunter platziert. Damit scheint das Problem behoben worden zu sein.
Tags und Links ios uisearchbar warnings