iOS7 情节提要图像选取器:(不起作用



我试图使用故事板在新的iOS7 Xcode项目中设置imagePicker,但在我找到以下代码之前似乎无法在线找到任何示例。

我已经设置了它,以便在按下按钮时,它使用模态推送来导航到具有显然调用图像选择器代码的"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]; <</em>

div class="one_answers"> 对于

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:功能,可以从情节提要中删除UIImagePickerController,并使用以下代码以编程方式创建它:

- (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;
    }
}

可能,另一种选择是子类UIImagePickerController并添加到子类中:

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

它似乎奏效了。

最新更新