UITableView reloadData aus einem anderen ViewController aufrufen

  • UITableView reloadData aus einem anderen ViewController aufrufen

    Hallo zusammen,

    ich habe mal eine genrelle Frage da ich langsam am verzweifeln bin. Ich rufe aus einer anderen Klasse die reloadData Funktion eines TableViews auf. Funktioniert leider nicht, habe mir das ganze mal im Debugging angeguckt. Der Compiler springt zum TableView und läuft korrekt durch, jedoch ändern sich die Daten im TableView nicht. Eigentlich sollte eine Zeile angehängt werden. Daher meine Frage. Kann ich reloadData aus einer anderen Klasse aufrufen um so eine Zele anzuhängen (numberOfRowsInSection) um dann beim Wechsel zum TableView die aktualisierte Tabelle vor mir zu haben?

    Gruß Tuni
  • Ja, beim Aufruf der Methode numberOfRowsInSection ist der Wert um die eine Zeile erhöht. Oder verstehe ich dich falsch?

    P.S: Schnelle Antwort.

    fwtag schrieb:

    Tuni schrieb:

    Eigentlich sollte eine Zeile angehängt werden

    Ist die Zeile sichtbar? Wenn nicht, optimiert reloadTable das gerne weg.


    Sollte so sein. Wenn ich readTable in der Klasse selbst ausführe, dann geht es ja. setNeedsLayout: ändert auch nichts.
  • Tuni schrieb:

    Ja, beim Aufruf der Methode numberOfRowsInSection ist der Wert um die eine Zeile erhöht. Oder verstehe ich dich falsch?

    Wo ist denn jetzt genau das Problem? Wird numbersOfRowsInSection: nicht angesprungen? Dann rufe mal setNeedsLayout für dem reloadData auf den TableView auf.
    Oder wird number.... aufgerufen, aber cellForRow... nicht? Dann hat reloadData (bzw. das Protocol) das weg optimiert und Du brauchst Dir keine Sorgen machen. Wenn Die Zelle sichtbar wird, wirst Du aufgefordert, sie zu liefern.
  • Also wenn die Anzahl in numberOfRows stimmt, dann muss ja auch entsprechend dein cellForRow aufgerufen werden. Hast Du da mal eine Breakpkt reingesetzt. Vlt hast du so deine Probleme mit dem reuse der cellen. Das hatten schon einige.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Bist Du Dir sicher, dass alle verwendeten Variablen (für View-Controller und Table-View) ungleich nil sind?

    Anstatt die Tabelle komplett neuzuladen, kannst Du auch dem Table-View sagen, dass Du Zellen hinzugefügt hast: developer.apple.com/library/io…c/uid/TP40006943-CH3-SW53

    Quellcode

    1. [self.tableView beginUpdates];
    2. [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:theIndexPath] withRowAnimation:UITableViewRowAnimationRight];
    3. [self.tableView endUpdates];
    „Meine Komplikation hatte eine Komplikation.“