2016-11-04 73 views
0

我想存儲和檢索從我的avcapturesession中拍攝的圖像。我可以通過按鈕按下來做到這一點,但我希望在拍攝後自動出現圖像。它可以與IBAction印刷機正常工作。這是我所做的。我用這段代碼將圖像保存爲用戶默認值顯示從avcapture捕獲的圖像

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]; 
+0

什麼類型的對象是self.imgView? imgView如何連接到NSUserDefaults?你是否嘗試過在調試器中使用'-test:'來檢查它是否工作並且哪裏不工作,並比較哪些不同? self.imgView在那些時候有什麼價值?當你沒有從按鈕調用它時,你從哪裏調用'-test:'? – uliwitness

回答

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

你可以做一兩件事,需要一個臨時的全球UIImage對象,當你拍攝的照片,那麼你可以將圖片保存到該對象,只要你想使用。

0

寫代表該圖像返回所需的控制器,如

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"); 

}