Kopierern eines ContentView von UITableViewCell

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kopierern eines ContentView von UITableViewCell

    Hallo,

    ich weiß ich geh euch zurzeit auf den Geist.

    Aber.
    Ich bin scheinbar zu doof um eine UITabeViewCell zu kopieren.

    Folgende Situation.
    Ich habe ein TableView in dem ich x Cells anzeige.

    Sobald eine ausgewählt wird öffne ich einen neuen UIViewController. In dem soll die ausgewählte Cell nochmal angezeigt werden.
    Also habe ich dem UIViewController eine UITableViewCell hinzugefügt und übergebe beim init die Cell die angezeigt werden soll und setze diese im "ViewdidLoad".

    Das Funktioniert auch.
    Nur sobald ich über den NavigationController wieder zurück gehe ist in dem TableView die Cell nicht mehr zu sehen.
    Nach meinem Verständnis (ich bin mir immernoch unsicher mit dem Speichermanagement in Obj-C) der Speicher der Cell wurde beim zurückgehen freigegeben und damit die Cell weg und der TableView kann an der Stelle nichts mehr anzeigen.

    Nun wollte ich also eine Kopie der Celle übergeben.
    Aber wie funktioniert das.

    Ich habe folgendes probiert:

    Quellcode

    1. [cell copy];


    Das funktioniert aber nicht.

    Danke jetzt schon für die Hilfe. :)

    Gruß
    Andreas
  • And-Wolf schrieb:

    Hallo,

    ich weiß ich geh euch zurzeit auf den Geist.

    Aber.
    Ich bin scheinbar zu doof um eine UITabeViewCell zu kopieren.

    Folgende Situation.
    Ich habe ein TableView in dem ich x Cells anzeige.

    Sobald eine ausgewählt wird öffne ich einen neuen UIViewController. In dem soll die ausgewählte Cell nochmal angezeigt werden.
    Also habe ich dem UIViewController eine UITableViewCell hinzugefügt und übergebe beim init die Cell die angezeigt werden soll und setze diese im "ViewdidLoad".

    Das Funktioniert auch.
    Nur sobald ich über den NavigationController wieder zurück gehe ist in dem TableView die Cell nicht mehr zu sehen.
    Nach meinem Verständnis (ich bin mir immernoch unsicher mit dem Speichermanagement in Obj-C) der Speicher der Cell wurde beim zurückgehen freigegeben und damit die Cell weg und der TableView kann an der Stelle nichts mehr anzeigen.

    Nun wollte ich also eine Kopie der Celle übergeben.
    Aber wie funktioniert das.

    Ich habe folgendes probiert:

    Quellcode

    1. [cell copy];


    Das funktioniert aber nicht.

    Danke jetzt schon für die Hilfe. :)

    Gruß
    Andreas


    Nicht ganz leicht, das zu verfolgen.

    Wenn Du die eine Instanz aus Deiner Tabelle übergibst, löst Du genau diese Zelle aus ihrer Hierarchie genau in dem Moment, in dem Du sie in die andere Hierarchie einsetzt.
    Dann musst Du sie auch wieder an dieselbe Stelle zurück setzen.
    Also so wie ich das verstanden habe, nimmst Du die Zelle und fügst sie mit 'addSubview' in eine andere Hierarchie ein.

    Warum erzeugst Du Dir nicht eine neue Zelle aus Deiner 'datasouce'-Methode und nimmst diese?
    Ich würde dann darauf achten, tatsächlich eine neue Zelle zu erzeugen.
    I would be embarrassed if they did not spy on me.
  • And-Wolf schrieb:

    Okay.

    Wie ist es dann am leichtesten mir eine Kopie davon zu ziehen?
    Oder muss ich den Krams auf dem neuen ViewController neu zeichnen?

    Danke & Gruß
    Andreas


    Wie gesagt, Du hast bereits einen Konstruktor, nämlich 'tableView:cellForRowAtIndexPath:'.
    Du musst nur versuchen, eine neue Zelle zu bekommen.
    Nicht besonders elegant, aber wenn Du es mit '… tableView: nil …" aufrufst, könnte es gehen.
    I would be embarrassed if they did not spy on me.