主叫展开SEGUE从照相机方法失效(calling unwind segue from camera

2019-10-20 14:07发布

我的开卷SEGUE代码工作正常。 我用故事板接线的事情了。 当我运行应用程序,一切都很好。

但除了点击一个按钮,我想也是从代码做平仓。 基本上,我提出一个包含两个按钮的模式: 相机图片库 。 按钮中的一个用户点击去无论是从相机或从库中获得的图像。 因此,一旦获得的图像,我不再需要模式的看法。 因此,作为方法的最后一步(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info ,我打电话给我的开卷作为赛格瑞

- (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或类似的东西呢? 我找不到一个。 所以,感谢您的帮助。

Answer 1:

imagePickerController:didFinishPicking...方法火灾,这是你的机会,驳回影像选择器控制器这样的:

[picker dismissViewControllerAnimated:YES completion:nil];

在大多数情况下,当我们调用这行代码,我们发送nil为完成论证。 但是,如果我们想要做的事时,这个解雇完成(因为我们在这里做),我们通过完成块参数:

[picker dismissViewControllerAnimated:YES completion: ^{
    [self performSegueWithIdentifier:@"myUnwindName" sender:self];
}];


文章来源: calling unwind segue from camera method fails