从相机方法调用unwind segue失败
我的unwind segue代码工作正常。 我用故事板来连线。 当我运行应用程序,一切都很好。
但除了点击一个button之外,我还想从代码中解开。 基本上我提出了一个模式,其中包含两个button: 相机 , 画廊 。 用户单击其中一个button即可从相机或图库中获取图像。 所以一旦获得图像,我不再需要模态视图。 因此,作为方法的最后一步(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
,我把我的unwind segue称为
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { //... do work here and then [self performSegueWithIdentifier:@"myUnwindName" sender:self]; }
但是当我做我得到以下错误
attempt to dismiss modal view controller whose view does not currently appear. self = <UITabBarController: 0x127d09b80> modalViewController = <UIImagePickerController: 0x127e2fd80>
我明白这个问题。 但是我不知道如何解决这个问题。
基本上我不应该打电话“而”相机视图仍然在屏幕上(即我的模式不在屏幕上)。 但是,我在哪里打电话? 有像ImagePickerDidClose
或类似的东西吗? 我找不到一个。 所以谢谢你的帮助。
当imagePickerController:didFinishPicking...
方法触发时,这是您解除图像选取器控制器的机会:
[picker dismissViewControllerAnimated:YES completion:nil];
在大多数情况下,当我们调用这行代码时,我们发送完成参数nil
。 然而,如果我们想在这个解雇完成的时候做一些事情(就像我们在这里所做的那样),我们通过一个完成块的论点:
[picker dismissViewControllerAnimated:YES completion: ^{ [self performSegueWithIdentifier:@"myUnwindName" sender:self]; }];