0

我正在使用使用 mapkit 的 sdk 3.0 创建一个仅限景观的应用程序。我需要在我的应用程序中使用 iphone 相机。但是当我尝试打开相机时,我收到了以下警告。

“无法进行全屏切换。fromViewController 的视图必须在占据全屏的视图内。”

我从中调用相机方法的视图是大小为 480*320 的 mapview。我编写了以下代码来调用相机:

UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;

picker.sourceType=UIImagePickerControllerSourceTypeCamera;

[self presentModalViewController: picker animated:YES];
[picker release];

之后我写了通常的方法:

-(void)imagePickerController : (UIImagePickerController *)picker didFinishPickingImage : (UIImage *)image  editingInfo : (NSDictionary *)editingInfo

但这从未被调用过,因为相机从未打开过。所以我的问题是我在这里错过了什么......?我正在实际的 iphone 设备上测试这个应用程序,而不是在模拟器上。我在另一个应用程序中使用过这段代码,它工作正常。但是在这里,它根本不起作用!如果您对此有任何想法,请提供帮助。

4

2 回答 2

1

听起来警告正在告诉您问题:您要传入的父视图presentModalViewController需要是全屏视图。因此,您需要使用其他东西而不是在此代码中使用“self”,例如父视图控制器。

现在,您将遇到另一个问题,因为相机控制器不喜欢横向模式,因此您可能必须切换回纵向模式才能显示它......

于 2009-08-04T13:42:31.470 回答
1

只需将“self”替换为可能在您的 appDelegate 中声明的父 ViewController。

于 2009-11-28T18:15:56.873 回答