iOS7故事板图像select器不工作:(

我试图设置一个新的iOS7 Xcode项目使用故事板的imagePicker ,但似乎无法find任何在线的例子,直到我find下面的代码。

我已经设置它,所以当按下button时,它使用模式推动的东西导航到视图,该视图具有显然在图像select器代码中调用的"UIImagePickerController"类。

但是,当应用程序运行它不会加载任何东西后点击允许应用程序访问您的照片任何机会的一些帮助吗?

错误截图抓取: https ://pbs.twimg.com/media/Bdy7v9JCAAABpvS.jpg: large

界面设置:

 @interface ridecount_AddRide_ViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>{ 

码:

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ UIImagePickerController *controller = [segue destinationViewController]; controller.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; controller.delegate = self; } -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [self dismissViewControllerAnimated:YES completion:nil]; } -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ [self dismissViewControllerAnimated:YES completion:nil]; UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; [[self.view viewWithTag:100023] removeFromSuperview]; UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(320/2-200/2, 10, 100, 100)]; imageView.tag = 100023; imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.image = image; [self.view addSubview:imageView]; } 

初始化控制器UIImagePickerController *controller = [[segue destinationViewController] init];

对SWIFT来说有点不同

 //Init property var imagePicker = UIImagePickerController() 

然后分配

 override func prepareForSegue(segue:UIStoryboardSegue!, sender: AnyObject!) { imagePicker = segue.destinationViewController as UIImagePickerController imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary imagePicker.allowsEditing = false imagePicker.delegate = self } 

我有同样的问题。 只有当availableMediaTypesForSourceType设置为UIImagePickerControllerSourceTypeCamera时,从故事板初始化的UIImagePickerController对象才能正常工作。

如果要保留prepareForSegue:function,可以从故事板中删除UIImagePickerController ,并使用以下代码以编程方式创build它:

 - (void)showCameraRollController { UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; UIStoryboardSegue *segue = [UIStoryboardSegue segueWithIdentifier:@"CameraRollController" source:self destination:imagePickerController performHandler:^{ [self presentViewController:imagePickerController animated:YES completion:NULL]; }]; [self prepareForSegue:segue sender:self]; [segue perform]; } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"CameraRollController"]) { UIImagePickerController *imagePickerController = [segue destinationViewController]; imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePickerController.delegate = self; } } 

可能的另一种方法是inheritanceUIImagePickerController并添加到子类中:

- (instancetype)initWithCoder:(NSCoder *)aDecoder { return [super init]; }

它似乎工作。