Показать захваченное изображение из avcapture

Я хочу сохранить и восстановить изображение, которое было взято из моей avcapturesession. Я смог сделать это с помощью нажатия кнопки, но я хочу, чтобы изображение появлялось автоматически после его съемки. Работает нормально с прессом IBAction. Вот что я сделал. Я сохранил изображение для пользователя по умолчанию с этим кодом

UIImage *Capture = [UIImage imageWithData:self.jpegPhotoData];
capturetest = Capture;
NSData *imageData;
imageData = [NSKeyedArchiver archivedDataWithRootObject:Capture];
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];

Затем я вызвал NSUserDefaults нажатием кнопки, используя этот код.

-(IBAction)test:(id)sender
{
    NSLog(@"WAS IT PRESSED");
    NSData *imageData1;
    imageData1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
    capturetest = [NSKeyedUnarchiver unarchiveObjectWithData: imageData1];
    self.imgView.image = capture test;
}

Это сработало идеально. Когда я нажал кнопку, он показал изображение, которое я только что сделал, но как мне заставить изображение появляться автоматически? Я пытался поместить код кнопки в пустое выражение, как -(void)test потом после того как фото было сделано я позвонил [self test], Это не сработало. Я даже пытался автоматически вызывать нажатие кнопки, но безуспешно.

[self performSelector: @selector(test:) withObject:self afterDelay: 0.0];

2 ответа

UIImage *Capture = [UIImage imageWithData:self.jpegPhotoData];
globalObject = Capture;

Вы могли бы сделать одну вещь, которая принимает один временный глобальный объект UIImage, и когда вы сделали снимок, вы можете сохранить изображение в этом объекте и использовать в любое время.

Напишите делегата, который возвращает изображение требуемому контроллеру, например

YourImageController.h

@protocol ImageSendingDelegate <NSObject>

 -(void)ServiceResponse :(UIImage *)currentImage;
@end

@interface YourImageController : .......

@property(strong,nonatomic)id <ImageSendingDelegate>IDelegate;

YourImageController.m Где вы получаете данные изображения

UIimage *image = [UIImage imageWithData:self.photoData];

[_IDelegate ServiceResponse:image];

импортируйте YourImageController.h в DesireController.h

@interface DesireController : UIViewController<ImageSendingDelegate>

@property (strong,nonatomic)YourImageController *delegateObject;

DesireCOntroller.m

 if(_delegateObject==nil)
 {
 _delegateObject=[[YourImageController alloc]init];

  _delegateObject.IDelegate=self

 }

-(void)ServiceResponse:(UIImage *)currentImage
{

UIimage *IamgeRecived=currentImage;

NSLog(@"\n\n\n\n geting image");

}
Другие вопросы по тегам