【发布时间】:2014-01-17 16:26:21
【问题描述】:
我有一个名为 SecondViewController 的 UIViewController,它使用 UIImagePickerController 加载照片库。当我选择一张照片时,它应该呈现另一个名为 PhotoViewController 的视图控制器。要将图像从 SecondViewController 传递到 PhotoViewController,我使用了单例。代码如下:
SecondViewController:
@property (strong,nonatomic) UIImagePickerController *libraryPicker;
@property (strong,nonatomic) UIImage *chosenImage;
@property (strong,nonatomic) PhotoViewController *controller;
- (void)viewDidLoad
{
controller = [PhotoViewController sharedInstance];
libraryPicker = [[UIImagePickerController alloc] init];
libraryPicker.delegate = self;
libraryPicker.allowsEditing = NO;
libraryPicker.navigationBarHidden = NO;
libraryPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentViewController:libraryPicker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
chosenImage = [info objectForKey:UIImagePickerControllerOriginalImage];
controller.photo = chosenImage;
[libraryPicker dismissViewControllerAnimated:NO completion:nil];
[self presentViewController:controller animated:YES completion:nil];
}
照片视图控制器:
@property (strong,readwrite) IBOutlet UIImageView *photoView;
@property (strong,readwrite) UIImage *photo;
+ (PhotoViewController *)sharedInstance;
static PhotoViewController *_self;
+ (PhotoViewController*)sharedInstance
{
if (_self == nil) {
_self = [[super alloc] init];
}
return _self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
photoView.image = photo;
}
所以当我选择图片时,应用程序会在调试区域显示黑屏且没有错误。怎么了?
P.S.:我正在使用 Storyboard 和 ARC
【问题讨论】:
标签: ios objective-c cocoa-touch uiviewcontroller