我有一个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:)
答案 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];
}