Ich habe eine App, die UIKit State Preservation in iOS 6 verwendet. Ich kann den Zustand der View-Controller speichern / wiederherstellen, dh welche Registerkarte ausgewählt ist und Navigation Controller-Hierarchie, aber ich kann meine Tabellenansicht nicht wiederherstellen es ist Offset. Ich habe eine Wiederherstellungs-ID in meinem Storyboard für die Ansicht sowie den View-Controller und den View-Controller (die Datenquelle der Tabelle) implementiert UIDataSourceModelAssociation
wie folgt:
modelIdentifierForElementAtIndexPath:inView:
wird aufgerufen, wenn die App in den Hintergrund tritt, aber modelIdentifierForElementAtIndexPath:inView:
wird nie aufgerufen.
Ich habe festgestellt, dass dies funktionieren kann, wenn das UITableView auch einen restaurationIdentifier-Satz hat.
Es funktioniert jedoch nicht, wenn sich der UITableViewController in einem UINavigationController befindet. Dies wurde Apple gemeldet, Problem ID: 13536778. Dieses Problem scheint auf iOS 6.0 und 6.1.3 auftreten.
Dies ist keine echte Antwort auf Ihre Frage, aber ich konnte auch keine Table View wiederherstellen, die contentOffset wiederherstellt.
Ich nehme an, das ist ein Fehler in iOS 6, weil die Dokumentation eindeutig besagt, dass UITableView
den contentOffset wiederherstellt, wenn 1) ein restorationIdentifier
2) der View-Controller, zu dem die Ansicht gehört, ein restorationIdentifier
hat und 3) die Datenquelle entspricht dem Protokoll UIDataSourceModelAssociation
.
Sie können das contentOffset und das ausgewählte Element jedoch manuell in Ihrem View-Controller wiederherstellen:
%Vor% Ich habe keine Ahnung, warum UITableView
das nicht automatisch macht, obwohl es in der Dokumentation heißt. Wenn jemand die Antwort kennt, bitte Kommentar.
Dies ist ein Fehler in iOS 6.
Um die Statuswiederherstellung für Ihre Tabellenansicht mit dem UIDataSourceModelAssociation
-Protokoll zu erhalten, sollten Sie -reloadData
in Ihrer Tabellenansicht aufrufen, bevor Sie den gültigen Indexpfad in -indexPathForElementWithModelIdentifier:inView:
like so zurückgeben:
Tags und Links iphone ios ios6 uikit uikit-state-preservation