0

这是设置:我有一个里面UIViewController有一个UITableView。触摸其中一个单元格时,会出现一个操作表,提供从图库中选择照片或拍摄新照片的选项。在任何一种情况下,我都会显示UIImagePickerController如下:

在我的接口声明中

UIImagePickerController* imageController;

在 viewDidLoad 中:

imageController = [[UIImagePickerController alloc] init];
imageController.delegate = self;
imageController.allowsEditing = YES;

在我的操作表委托方法中

if(buttonIndex == 2)
    return;

UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;

if(buttonIndex == 1)
    sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

imageController.sourceType = sourceType;

[self presentModalViewController:imageController animated:YES];

效果很好,并且图像选择器会显示出来。然而,从此时起,导航控制器似乎无法正常工作。我可以打电话

[self.navigationController popViewControllerAnimated:YES];

并且导航栏中的标题会随着标准的弹出动画而改变,但控制器本身不会消失。这仅在图像选择器控制器显示后才会发生。我可以在显示控制器之前取消操作表,完全没有任何问题。

我已经包含了一个短视频的链接,因为这个应用程序已经上线了——这只是一个重新构建。

http://screencast.com/t/qBolp2v3iCyR

我尝试从导航控制器和标签栏控制器显示模式 - 结果相同。我尝试了使用此调用的替代显示方法:

[self presentViewController:imageController animated:YES completion:^{}];

我已经验证我的导航控制器不是零,并且适当的控制器在堆栈上。任何帮助将非常感激。提前致谢。

4

2 回答 2

0

试试这个,如果你显示 viewController

[self presentModalViewController:imageController animated:YES];

你必须用dismissView

[imageController dismissViewControllerAnimated:YES completion:nil];

因为 popViewController 将在使用 pushViewController 显示视图时使用

对不起,我的英语不好。

于 2013-01-09T09:42:58.530 回答
0

要关闭使用 添加的控制器presentModalViewController:animated:,您应该使用

[self.navigationController dismissModalViewControllerAnimated:YES]
于 2013-01-09T09:43:11.157 回答