我有一个带有几个按钮的视图,我用它们来呈现 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
,这就是我对所有 UIImagePickerController 所做的事情,但问题是 - 在委托方法中,我如何知道哪个 UIImagePickerController 调用了委托方法。因为对于每个 UIImagePickerController,我需要对媒体执行的操作是不同的。在委托方法中我确实得到了UIImagePickerController
参数,但它始终具有从方法(选择器)分配的名称。我可以用什么来知道要引用哪个 UIImagePickerController?
我认为您可以存储对每个选择器的引用,然后检查它是否是同一个实例。虽然我会质疑使用多个不同的选择器实例,但您可以只配置一个吗?此外,它们在任何配置中都返回几乎相同的结果,您可以研究结果字典以满足特定需求。
self.oneImagePicker = [UIImagePickerController ...]
self.twoImagePicker = [UIImagePickerController ...]
//In delegate
if ([self.oneImagePicker isEqual:picker]) ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)