Ich habe gerade angefangen, mit TableViews zu arbeiten, und ich habe 5 Zellen in einer Tabellenansicht in einem ViewController, der in einem navigationController eingebettet ist. Wenn eine Zelle gedrückt wird, wird eine andere Ansicht hineingedrückt. Mein Problem ist, dass die Zelle, die ich drücke, ausgewählt ist, aber die Auswahl nicht verschwindet. Ich habe es mit diesem Code versucht:
%Vor% Die TableView wird in der viewDidLoad-Methode initialisiert.
Immer noch, wenn ich auf eine Zelle klicke, wird der neue viewController eingefügt, aber die Zelle bleibt ausgewählt. Was könnte das Problem hier sein?
Zusammenfassung :
Das verstehe ich aus Ihrer Frage.
Zu diesem Zeitpunkt sollte die Zelle in Ihrer TableView immer noch ausgewählt werden, damit der Benutzer die letzte Aktion, die er ausgeführt hat, erinnert, aber Sie möchten, dass er an diesem Punkt nicht ausgewählt wird (die Mailanwendung ist ein gutes Beispiel dafür) dieses Verhalten).
So ist der beste Ort, um die Zelle in Ihrer Tabellenansicht abzuwählen, in der - (void)viewDidAppear:(BOOL)animated
-Methode des UIViewController, die die Tabellenansicht in ihrer Ansicht hat. Auf diese Weise können Sie dem Benutzer die Möglichkeit geben, die Auswahl zu sehen, bevor sie sanft wie in der Post verschwindet.
Sie können nil
als Argument von deselectRowAtIndexPath
übergeben, tableView behandelt es ordnungsgemäß.
Haben Sie auch tableView:didSelectRowAtIndexPath:
implementiert? Diese Methode wird jedes Mal aufgerufen, wenn Sie auf eine Zelle tippen. Also solltest du deinen Code dort ablegen.
Die von Ihnen verwendete Methode tableView:didDeselectRowAtIndexPath:
wird aufgerufen, wenn eine Zelle ausgewählt ist und Sie auf eine andere Zelle tippen.
Tags und Links objective-c iphone uitableview ios