2016-12-20 4 views
1

Ich arbeite an Chat-Anwendung. Ich möchte den Anwendungsstatus aller View-Controller speichern.So speichern und wiederherstellen Sie den Status Verwenden von Storyboards in iOS?

Mein Code App-Status zu speichern:

+ (UIViewController *)viewControllerWithRestorationIdentifierPath:(NSArray *)identifierComponents coder:(NSCoder *)coder 
{ 
MoreController *vc = nil; 
UIStoryboard *storyboard = [coder decodeObjectForKey:UIStateRestorationViewControllerStoryboardKey]; 
if (storyboard) 
{ 
     vc = (MoreController *)[storyboard instantiateViewControllerWithIdentifier:@"MoreController"]; 
     vc.restorationIdentifier = [identifierComponents lastObject]; 
     vc.restorationClass = [MoreController class]; 
} 
return vc; 
} 

- (void)encodeRestorableStateWithCoder:(NSCoder *)coder 
{ 
     [coder encodeObject:self.view forKey:@"save"]; 
     [coder encodeObject:_btnoiwii forKey:@"save"]; 

     [coder encodeObject:_tblMore forKey:kUnsavedEditStateKey]; 
      [super encodeRestorableStateWithCoder:coder]; 
} 

- (void)decodeRestorableStateWithCoder:(NSCoder *)coder 
    { 
    self.view = [coder decodeObjectForKey:@"save"]; 
    _btnoiwii= [coder decodeObjectForKey:@"save"]; 

    _tblMore = [coder decodeObjectForKey:kUnsavedEditStateKey]; 
    [super decodeRestorableStateWithCoder:coder]; 

    } 

Ich bin in der Lage, den Zustand der Anwendung zu codieren, aber nicht entschlüsseln. In der App-Delegierten-Klasse fügte ich shouldRestoreApplicationState,willEncodeRestorableStateWithCoder

hinzu Bitte geben Sie mir geeignete Lösung zum Speichern und Wiederherstellen des Stands der Anwendung in iOS.

+0

bitte jede Hilfe ist zu schätzen. –

+0

bitte helfen Sie, wie Sie den Status der Anwendung in iOS speichern und wiederherstellen –

+0

Warum verwenden Sie den gleichen Schlüssel für ** self.view ** und ** _ btnoiwii **? –

Antwort

0

Sie sollten nicht die gesamte Tabellenansicht speichern und die Superansicht des Controllers so anzeigen. Wenn UIKit Ihren View-Controller wiederherstellt, stellt es automatisch alle Ansichten für Sie wieder her. Stellen Sie sicher, dass Sie Ihre Datenquelle speichern, und laden Sie die Tabellenansicht beim Entschlüsseln neu.

Wenn Sie Indizes Ihrer Tableview wiederherstellen möchten, müssen Sie dieses Protokoll entsprechen, UIDataSourceModelAssociation und implementieren diese Methoden: indexPathForElementWithModelIdentifier, modelIdentifierForElementAtIndexPath

außerdem sicher, dass Sie die Navigation erholen Stapel, wo Ihre View-Controller geschoben werden.

Verwandte Themen