如何将UIImagePickerController添加为子视图而不是Modal View

时间:2010-09-09 10:27:37

标签: iphone objective-c uiimagepickercontroller

我的一个视图上有一个段控制器,现在在段控制器的第0个索引上我想通过添加子视图而不是ModalViewController来添加UIImagePickerController(用于向用户显示摄像头视图)。现在视图已加载,但它不显示任何摄像机视图。我能够通过presentModalViewController显示摄像机视图并传递其对象。

这是代码 -

if(segmentedControl.selectedSegmentIndex==0)

{

UIImagePickerController *cameraView = [[UIImagePickerController alloc] init];

cameraView.sourceType = UIImagePickerControllerSourceTypeCamera;

cameraView.showsCameraControls = NO;

//[self presentModalViewController:cameraView animated:YES]; //Working

[self.view addSubview:cameraView.view]; // Not Working

}

2 个答案:

答案 0 :(得分:11)

[self.view addSubview:picker.view];
[picker viewWillAppear:YES]; // trickery to make it show
[picker viewDidAppear:YES];

由于UIImagePickerController不打算与它一起使用,因此顶部会出现一个白色条作为副作用。

答案 1 :(得分:0)

你应该避免这样做,不推荐使用,可能导致不必要的副作用。

如文档(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImagePickerController_Class)所述,您无法将其添加为子视图,您应将其作为新控制器提供

这是一篇文档:

  

在iPhone或iPod touch上,通过调用,以模态方式(全屏)执行此操作   presentViewController:animated:completion:当前的方法   活动视图控制器,传递您配置的图像选择器   控制器作为新的视图控制器。

希望这有帮助!