iOS 6 で UIKit 状態保存を使用しているアプリがあります。View Controller の状態 (つまり、選択されているタブとナビゲーション コントローラー階層) を保存/復元できますが、テーブル ビューのオフセットを復元することはできません。ビューとビューコントローラーのストーリーボードに復元識別子があり、ビューコントローラー (テーブルのデータソース)UIDataSourceModelAssociation
は次のように実装されています。
- (NSString *)modelIdentifierForElementAtIndexPath:(NSIndexPath *)indexPath inView:(UIView *)view
{
TSStatus *status = [self._fetchedResultsController objectAtIndexPath:indexPath];
return status.objectID.URIRepresentation.absoluteString;
}
- (NSIndexPath *)indexPathForElementWithModelIdentifier:(NSString *)identifier inView:(UIView *)view
{
NSURL *statusURL = [NSURL URLWithString:identifier];
NSManagedObjectID *statusID = [[TSDataController sharedController].persistentStoreCoordinator managedObjectIDForURIRepresentation:statusURL];
TSStatus *status = (TSStatus *)[[TSDataController sharedController].mainContext objectWithID:statusID];
return [__fetchedResultsController indexPathForObject:status];
}
modelIdentifierForElementAtIndexPath:inView:
アプリがバックグラウンドに入るmodelIdentifierForElementAtIndexPath:inView:
と呼び出されますが、呼び出されることはありません。