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