我有一个视图,上面有几个按钮,用于显示UIImagePickerControllers(相机和媒体选择器)。在创建UIImagePickerControllers时,我给它们提供了不同的名称,并给出了模态,如下面的代码所示:
- (void) startMediaBrowserFromViewControllerForBGImage {
UIImagePickerController * mediaUIForBGImage = [[UIImagePickerController alloc]init];
//i also set a bunch of different settings here, but it doesn't matter for this purpose
mediaUIForBGImage.delegate = self;
[self presentModalViewController: mediaUIForBGImage animated:YES];
}
现在,您也可以在代码中看到,我将委托设置为
self
,这就是我对所有UIImagePickerControllers所做的工作,但是问题是-在委托方法中,我如何知道哪个UIImagePickerController称为委托方法。因为每个UIImagePickerControllers我需要对媒体执行的操作都不同。在委托方法中,我确实获得了UIImagePickerController
参数,但它始终具有从方法(选择器)分配的名称。我可以用来知道要引用哪个UIImagePickerController? 最佳答案
我认为您可以存储对每个选择器的引用,然后检查它是否是同一实例。尽管我会质疑使用多个不同的选择器实例,但是您可以只配置一个实例吗?此外,它们在任何配置中都返回几乎相同的结果,您可以针对特定需求调查结果字典。
self.oneImagePicker = [UIImagePickerController ...]
self.twoImagePicker = [UIImagePickerController ...]
//In delegate
if ([self.oneImagePicker isEqual:picker]) ...
关于ios - 在UIImagePickerController委托(delegate)中标识不同的选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12328859/