質問

新しいビューの画像を設定しようとしています。コントローラーの画像を設定し、ビューを表示します。ただし、コントローラーのviewDidLoadでは、画像は使用できません。

- (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];
役に立ちましたか?

解決

viewDidLoadが呼び出されるためです

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

NIBがロードされた後。

editPictureControllerのimageプロパティ(これはUIImageViewと思われます-紛らわしい!)はこの後まで設定されません。

代わりにviewWillAppear:メソッドのviewDidLoadで実行していることを行います-pushViewController:animated:がviewWillAppear :.を呼び出すと、imageプロパティが設定されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top