Ich habe splitViewController, der als MasterViewController einige viewController und als DetailViewController einige tableViewController hat. Wenn ich eine Taste auf dem MasterViewController drücke, möchte ich den neuen tableViewController im Detail ViewController anstelle eines bestehenden anzeigen.
So habe ich das gefallen:
%Vor%Danach gebe ich Daten weiter, die in new tableController angezeigt werden:
%Vor%Danach "pushe" ich neue Controller zu splitViewController:
%Vor%In der ZieltabelleViewController-Methode "passInSearchResults" werden Daten übergeben und ich rufe auch reloadData auf. Die Methode sieht so aus:
%Vor%Konsole: Daten werden übergeben: [hier bekomme ich die genauen Daten, die ich will und es scheint genau richtig].
%Vor%Konsole: Einstellung Tischlänge: [hier bekomme ich richtige Länge]
Das Problem ist, dass die Tabelle nicht mit übergebenen Daten gefüllt ist und die Methode "cellForRowAtIndexPath" nicht aufgerufen wird.
Wie kann es sein, dass bei reloadData Methode "numberOfRowsInSection" ausgelöst wird, aber nicht die Methode "cellForRowAtIndexPath" ... ???
Danke
Wie kann es sein, dass bei reloadData Methode "numberOfRowsInSection" ausgelöst wird, aber nicht die Methode "cellForRowAtIndexPath" ... ???
Nachdem wir einen Tag mit demselben (ish) Problem verbracht haben, haben wir hier einen Fehler gefunden. Ich habe jedoch einen Hack / Workaround gefunden.
Wenn ich das Array (Hinzufügen / Entfernen von Werten oder vollständiges Neuaufbau) ändere, das in meiner cellForRowAtIndexPath-Methode verwendet wird, scheint es CellForRowAtIndexPath erneut korrekt aufzurufen, wenn Sie Data erneut laden.
Zum Beispiel habe ich in meinem cellForRowAtIndexPath etwas wie:
%Vor%Ich habe auch eine Methode, um dieses Array zu erstellen, das bei viewDidLoad aufgerufen wird:
%Vor%Ich habe also festgestellt, dass, wenn ich diese Methode vor dem Aufruf von reloadData erneut in meinem searchResultsArrayWithSections-Array aufruft, alle Methoden von UITableViewDelegate korrekt aufgerufen werden! (Wie ich schon sagte, hack aber es funktioniert!)
%Vor%Ich hatte das gleiche Problem, aber die Entscheidung war sehr einfach. Könnten Sie zuerst versuchen, die Tabelle nach unten zu scrollen? tableView: cellForRow ... sollte aufgerufen werden. Überprüfen Sie die Höhe der Kopfzeilen und contentOffset für tableView.
Sie können auch die Tabelle in der Methode init [With ...] von viewController zuweisen und auch dieselbe Eigenschaft in IB verdrahten. Auf diese Weise ist es möglich, dass numberOf ... delegate-Methoden aufgerufen werden und cellForRow ... nicht.
Tags und Links iphone uitableview reloaddata