Отображение захваченного изображения из 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, как -(void)testтогда, когда фотография была сделана, я позвонил [self test]. Это не сработало. Я даже пытался вызвать кнопку нажмите автоматически, как это, но не повезло.

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

2 ответа

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

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

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

    YourImageController.ч

    @protocol ImageSendingDelegate <NSObject>
    
     -(void)ServiceResponse :(UIImage *)currentImage;
    @end
    
    @interface YourImageController : .......
    
    @property(strong,nonatomic)id <ImageSendingDelegate>IDelegate;
    

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

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

    импорт YourImageController.h в DesireController.ч

    @interface DesireController : UIViewController<ImageSendingDelegate>
    
    @property (strong,nonatomic)YourImageController *delegateObject;
    

    DesireCOntroller.м

     if(_delegateObject==nil)
     {
     _delegateObject=[[YourImageController alloc]init];
    
      _delegateObject.IDelegate=self
    
     }
    
    -(void)ServiceResponse:(UIImage *)currentImage
    {
    
    UIimage *IamgeRecived=currentImage;
    
    NSLog(@"\n\n\n\n geting image");
    
    }