2014-02-18 1 views
1

Я добавляю UIImageView при нажатии кнопки. Я хочу восстановить его, используя UIKit. Я получаю идентификатор реставрации в:Сохранение и восстановление состояния UIImageView добавлено из события кнопки

- (void)decodeRestorableStateWithCoder:(NSCoder *)coder; 

Как я могу расшифровать эту UIImageView?

+0

вы должны кодировать и декодировать изображение не ImageView. в процессе обработки сточных вод. – Pawan

+0

imageview либо не в моем .h файле, либо в файле xib. я делаю и добавляю, что изображение просмотра для просмотра на кнопку click.i нужно восстановить изображение? – user1780632

+0

есть решение для этого. вы должны сделать коллекцию изображений. кодировать и декодировать эту коллекцию. вы должны попробовать это сами. – Pawan

ответ

1

Я использовал этот код в одном из моих приложений.

здесь процесс декодирования кодирования &

-(void)encodeRestorableStateWithCoder:(NSCoder *)coder 
{ 

NSData *imageData=UIImagePNGRepresentation(self.imgViewProfilePicture.image); 
[coder encodeObject:imageData forKey:@"PROFILE_PICTURE"]; 
[super encodeRestorableStateWithCoder:coder]; 
} 

-(void)decodeRestorableStateWithCoder:(NSCoder *)coder 
{ 

self.imgViewProfilePicture.image=[UIImage imageWithData:[coder decodeObjectForKey:@"PROFILE_PICTURE"]]; 
[super decodeRestorableStateWithCoder:coder]; 

} 
1

Для того, чтобы состояние консервации и восстановительных работ есть два шага, которые всегда требуются:

  • Делегат App должен выбрать в
  • Каждый контроллер представления или представления, чтобы быть сохранены/восстановлены должны назначенный идентификатор восстановления.

Вы также должны осуществлять encodeRestorableStateWithCoder: и decodeRestorableStateWithCoder: для представлений и просматривать контроллеры, которые требуют, чтобы состояние быть сохранены и восстановлены.

Добавьте следующие методы в контроллер вида UIImageView.

-(void)encodeRestorableStateWithCoder:(NSCoder *)coder 
{ 
    [coder encodeObject:UIImagePNGRepresentation(_imageView.image) 
       forKey:@"YourImageKey"]; 

    [super decodeRestorableStateWithCoder:coder]; 
} 

-(void)decodeRestorableStateWithCoder:(NSCoder *)coder 
{ 
    _imageView.image = [UIImage imageWithData:[coder decodeObjectForKey:@"YourImageKey"]]; 

    [super encodeRestorableStateWithCoder:coder]; 
} 

государственный сохранение и восстановление является дополнительной функцией, так что вы должны иметь приложение делегата неавтоматического путем реализации двух методов:

- (BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder 
{ 
    return YES; 
} 

- (BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder 
{ 
    return YES; 
} 

Полезная статья о государственной охраны: http://useyourloaf.com/blog/2013/05/21/state-preservation-and-restoration.html

+0

Я добавляю изображение из кода, которое оно не инициализировано в моем файле заголовка – user1780632

+0

, как вы думаете, без преобразования uiimage в nsdata, вы можете его кодировать и декодировать. – Pawan

+0

на кнопке нажмите Я использую это – user1780632