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