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

我怎样才能从细胞中呈现?

Misha 🙂

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

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

你的细胞协议将有一个方法,如:

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