0

如何将 MainViewController 中的uiimage选定内容传递uiimagepickercontroller给 SecondViewController?它确实推送到了 SecondViewController,但是它uiimage是空的。

我在网上搜索过,尝试了解决方案,但仍然无法正常工作。

photoImageuiimageview我在 SecondViewController 中声明的。

- (void)imagePickerController:(UIImagePickerController *) picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   [picker dismissModalViewControllerAnimated:YES];

    SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    [secondVC.photoImage setImage:[info objectForKey:@"UIImagePickerControllerEditedImage"]];
    [self.navigationController pushViewController:secondVC animated:YES];
    [secondVC release];
}
4

2 回答 2

0

在调用该控制器的方法之前,您的第二个视图控制器中的AUIImageView不存在。viewDidLoad将一个属性放入SecondViewController保存 a UIImage,当您推送视图控制器(而不是尝试设置图像视图)时,存储对您想要使用的图像的引用,然后将您的setImage:调用移动到第二个视图控制器的 `viewDidLoad` `。

于 2012-11-25T14:11:55.390 回答
0

创建一个共享类来存储图像,并在任何你想要的地方访问它。

在 MainViewController 中将该图像分配到该共享类的 ivar 中,然后在 SecondViewController 中访问它。

编辑 :

下面的代码展示了如何实现共享类,这可能在语法上不正确,因为目前我没有使用 mac,所以我无法编译。

@interface SomeManager : NSObject
    +(id)myImage;
@end

@implementation SomeManager
    +(id)myImage{    
        static id myImage= nil; 
        @synchronized([self class]){ 
            if (myImage== nil) { 
                myImage= //put your image here; 
            } 
        }
        return myImage;
    }
 @end
于 2012-11-25T13:37:22.443 回答