新しいビューのUIImageを設定して表示する
-
20-08-2019 - |
質問
新しいビューの画像を設定しようとしています。コントローラーの画像を設定し、ビューを表示します。ただし、コントローラーの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プロパティが設定されます。
所属していません StackOverflow