Ich stimme zu, dass beim erneuten Laden der Tabellenansicht alle Zellen mithilfe von tableView:cellForRowAtIndexPath:
entladen und neu geladen / angezeigt werden und die Originaldaten verwendet werden, nicht die aktualisierten @ "xxxxx" und @ "yyyyy" in Ihrer tableView:didSelectRowAtIndexPath:
-Methode.
In einem kleinen Testprojekt konnte ich die Labels bei der Auswahl mit:
ändern %Vor%Sie sollten nicht versuchen, die Tabelle neu zu laden, während eine Zelle ausgewählt ist. Versuchen Sie stattdessen
[ZellensatzNeedLayout]
, nachdem Sie die obigen Änderungen an den Beschriftungen vorgenommen haben.
Gibt es auch einen Grund, warum Sie in der Methode auf den App-Delegaten verweisen?
Erstellen Sie ein neues iPad-Projekt (geteilte Ansicht) und gehen Sie nun durch die Klassen- & gt; -Dateien. Der einfachste Weg ist dort gegeben worden. Die von XCode generierten Codes.
Beispiel Code Linien: -
%Vor% Sie können sie in cellForRowAtIndexPath ||&& didSelectRowAtIndexPath ..
Sie sind sich nicht sicher, was Sie mit dem Delegaten zu tun versuchen, aber Sie sollten versuchen, die bereits instanziierte TabelleView aufzurufen; d. h. Anruf
%Vor%Vielleicht bin ich nicht klar Was ich sage ist, dass Sie eine neue leere Tabellenansicht instanziieren
%Vor%Überlegen Sie, den alten
durch Ersetzen zu ersetzen %Vor%Haben Sie versucht, nur die ausgewählte Zelle zu aktualisieren, anstatt die gesamte Tabelle neu zu laden?
[cell setNeedsDisplay];
statt
[tableView reloadData];
Dies wird eine bessere Leistung haben und ich bin nicht, aber ich nehme an, dass die Auswahl verloren geht, wenn Sie die ganze Tabelle aktualisieren (dies könnte der Grund sein, warum Sie am Ende keine Änderung sehen) ....
Tags und Links iphone uitableview didselectrowatindexpath