我有一个 ViewController (VC1),它以模态方式打开另一个 ViewController (VC2),该 ViewController (VC2) 嵌入在 NavigationController (NavC1) 中。VC2 用作源选择视图,供用户选择不同的源,例如内置的照片库。当用户在 VC2 中选择照片库时,我正在打开 Apple 的 imagePicker。
VC1 --(modal)--> NavC1 ----> VC2
在 imagePickerdidFinish 中,我想关闭之前模态显示的 VC2。实际上这个方法看起来如下。
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage];
...
NSError* error;
if([UIImageJPEGRepresentation(image, 0.5) writeToFile:path options:NSDataWritingFileProtectionComplete error:&error] == NO)
{
NSLog(@"Saving image to file failed with error %@",[error localizedDescription]);
}
picker.delegate = nil;
[self dismissModalViewControllerAnimated:YES];
...
}
到目前为止我已经尝试过:
- 我试图使用父导航控制器将其关闭
- 我已经在
prepareForSegue:
VC1 中存储了对 VC2 的引用,并在 imagePicker 完成后将委托从 VC2 传递回 VC1。在这种方法中,我试图简单地手动关闭模态视图([self.myModalView dismissModalViewControllerAnimated:YES]
)
有人对我有什么建议吗?提前致谢!