Ios 当sourceType为照片库时未调用UIImagePickerController委托
我有一个问题,当呈现sourceType=UIImagePickerController源类型PhotoLibrary时,UIImagePickerController的委托没有被调用 奇怪的是,它在照相机模式下工作得非常好 接口声明:Ios 当sourceType为照片库时未调用UIImagePickerController委托,ios,objective-c,delegates,uiimagepickercontroller,photolibrary,Ios,Objective C,Delegates,Uiimagepickercontroller,Photolibrary,我有一个问题,当呈现sourceType=UIImagePickerController源类型PhotoLibrary时,UIImagePickerController的委托没有被调用 奇怪的是,它在照相机模式下工作得非常好 接口声明: @interface ChatVC : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@interface ChatVC : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate>
下面是同一视图控制器中的委托方法实现:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary<NSString *,id> *)editingInfo {
NSLog(@"Image Picker Controller Picked Image - Deprecated");
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSLog(@"Image Picker Controller Picked Image");
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
NSLog(@"Image Picker Controller Cancelled");
[picker dismissViewControllerAnimated:YES completion:nil];
}
-(无效)图像选择器控制器:(UIImagePickerController*)选择器未完成图像:(UIImage*)图像编辑信息:(NSDictionary*)编辑信息{
NSLog(@“图像选择器控制器拾取的图像-已弃用”);
[picker DismissionViewControllerInitiated:是完成:无];
}
-(void)imagePickerController:(UIImagePickerController*)picker未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息{
NSLog(@“图像选择器控制器拾取的图像”);
[picker DismissionViewControllerInitiated:是完成:无];
}
-(无效)ImagePickerController IDCancel:(UIImagePickerController*)选择器{
NSLog(@“图像选择器控制器已取消”);
[picker DismissionViewControllerInitiated:是完成:无];
}
在摄影机模式下打开时,一切正常,我可以看到调用了相应的委托方法
但当以照片库模式打开并选择照片时,不会发生任何事情,也不会调用委托方法。然而,当我点击Cancel按钮时,我可以看到-ImagePickerControllerdCancel:delegate方法被调用
我甚至怀疑内存警告会以某种方式使委托无效,但这里的情况并非如此
请有人帮我解决这个问题
提前谢谢 您使用什么版本的Xcode、iOS和什么设备测试此功能?@rmaddy感谢您的回复。我已经用iOS 8和iOS 9在模拟器和设备上进行了测试。Xcode 7.1版。使用您附带的代码,它工作得非常好。调用了
imagePickerController:didFinishPickingMediaWithInfo:
。在iO8.4/9.1模拟器上测试。@trick14是的,我知道。它应该工作得很好。但问题是,它没有像预期的那样工作,并且想知道应用程序的其他部分可能出现什么问题?有什么想法吗?你能分享一下这个项目吗?我确信您附加的源代码没有问题。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary<NSString *,id> *)editingInfo {
NSLog(@"Image Picker Controller Picked Image - Deprecated");
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSLog(@"Image Picker Controller Picked Image");
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
NSLog(@"Image Picker Controller Cancelled");
[picker dismissViewControllerAnimated:YES completion:nil];
}