从 UITableViewCell 打开相机 iOS

open camera from UITableViewCell iOS

我有一个 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];
}

如何从单元格进行演示?

米莎:)

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

协议方法之一是要求委托代表它呈现视图控制器的方法。

您的单元格协议将具有如下方法:

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

然后您的 table 视图控制器将实现以下方法:

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