从UITableViewCell iOS打开相机

时间:2015-09-28 17:56:23

标签: ios uitableview uiimagepickercontroller cell

我有一个UITableView和一个UITableViewCell。在每个UITableViewCell中,我想打开图库或单击图像。我通常会像

一样呈现UIImageviewController
- (IBAction)takePhoto:(UIButton *)sender {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;

  [self presentViewController:picker animated:YES completion:NULL];
}

我如何从细胞中呈现?

Misha:)

1 个答案:

答案 0 :(得分:1)

正确的解决方案是使用适当的MVC设计。让自定义单元格为自己的委托方法定义协议。将表视图控制器设置为每个单元的委托。

其中一种协议方法是让代表代表它呈现视图控制器的方法。

您的手机协议将采用以下方法:

- (void)cell:(CustomTableViewCell *)cell presentViewController:(UIViewController *)controller;

您的自定义单元格的takePhoto方法可以执行以下操作:

- (IBAction)takePhoto:(UIButton *)sender {
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;

    [self.delegate cell:self presentViewController:picker];        
}

然后你的表视图控制器将实现该方法:

- (void)cell:(CustomTableViewCell *)cell presentViewController:(UIViewController *)controller {
    [self presentViewController:controller animated:YES completion:NULL];
}