2009-05-08 9 views
0

新しいビューの画像を設定しようとしています。私はコントローラの画像を設定し、次にビューを表示します。しかし、コントローラのviewDidLoadでは、画像は利用できません。 NIBがロードされた後のviewDidLoadが新しいビューのUIImageを設定して表示する

[editPictureController initWithNibName:@"EditPictureSaveView" bundle:[NSBundle mainBundle]]; 

によって呼び出されるためです

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 

EditPictureSaveViewController *editPictureController = [EditPictureSaveViewController alloc]; 

[editPictureController initWithNibName:@"EditPictureSaveView" bundle:[NSBundle mainBundle]]; 

UIImageView *imageView = [ [ UIImageView alloc ] initWithImage: image ]; 
[imageView setImage:image]; 
[editPictureController setPreview:imageView]; 

[self.navigationController pushViewController:editPictureController animated:YES]; 

答えて

2

editPictureControllerの画像プロパティ(私はUIImageViewと思われます - 混乱します!)は、これ以降に設定されません。

代わりに、viewWillAppear:メソッドのviewDidLoadで何をしていても、画像プロパティはpushViewController:animated:viewWillAppear:を呼び出すと設定されます。

+0

ありがとうございました!今度は私のイメージをappDelegateに保存し、viewWillAppearのビューに設定します: UIImageではなくUIImageViewはテスト目的のためのもので、削除するのを忘れてしまいました。 ;-) – Stefan

+0

このアプリケーションでは問題ありませんが、AppDelegateをデータ格納のフォールバックとして使用して、グローバル変数のリポジトリに効率的に変換することには注意してください。これを行うだけでなく、あなたのMVCを弱めるだけでなく、必要な時よりもはるかに長い時間、メモリ内のオブジェクトを周回させることにつながります。 – mmc

関連する問題