我有一个ViewController(VC1),它以模态方式打开另一个嵌入在NavigationController(NavC1)中的ViewController(VC2)。 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:
中存储了对VC2的引用
当imagePicker执行时,将代理从VC2传递回VC1
完。在这种方法中,我试图简单地模仿模态视图
手动([self.myModalView
dismissModalViewControllerAnimated:YES]
)有人对我有建议吗?提前谢谢!
答案 0 :(得分:0)
如果您要[self.navigationController PushViewController:VC2Object animated:YES];
来VC2,那么您需要弹出它[self.navigationController popViewController];
如果您要[self.navigationController presentedViewController];
来VC2,那么您需要[self dismissModalViewControllerAnimated:YES];
因此,请检查如何在内存中加载VC2 viewController。