2016-11-04 14 views
0

私のavcapturesessionから取得した画像を保存して取得したい。私はボタンプレスでこれを行うことができましたが、撮影後に画像が自動的に表示されるようにしたいと考えています。 IBActionプレスでうまく動作します。ここに私がしたことがあります。私はその後、私はこのコードを使用して、ボタンを押すとNSUserDefaultsと呼ばれるこのコードavcaptureからキャプチャした画像を表示

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

で、ユーザーのデフォルトに画像を保存します。

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

これは完璧に機能しました。私がボタンを押したときに、私が撮った画像が表示されましたが、画像を自動的に表示するにはどうすればいいですか?私は[self test]と呼んで、-(void)testのようなvoid文の中にボタンコードを入れてみました。それはうまくいかなかった。私はこのように自動的にボタンを押すように試みましたが、運はありません。

[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; 

あなたは1つの一時的なグローバル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"); 

} 
関連する問題