Показать захваченное изображение из 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");
}