【发布时间】:2014-01-08 10:53:02
【问题描述】:
我正在使用自定义 UIImagePickerController 并且我需要 UINavigationBar 也在同一个控制器中,因此我尝试在按钮操作上利用导航栏本身的空间而不是显示默认的相机捕捉按钮我试图调用拍照方法,但它崩溃了。正确的做法是什么。
// prepare imagePicker view
imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
imagePicker.showsCameraControls = NO;
isFront = YES;
cameraType = @"front";
UIBarButtonItem *takePictureButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:imagePicker.view action:@selector(captureImage:)];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(flip:)];
self.navigationItem.rightBarButtonItems = [[NSArray alloc]initWithObjects:takePictureButton,cancelButton, nil];
-(void)captureImage:(id)sender
{
[imagePicker takePicture];
}
- (void) flip: (id) sender
{
if(isFront)
{
cameraType = @"front";
isFront = NO;
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
}
else
{
isFront = YES;
cameraType = @"rear";
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
}
}
【问题讨论】:
-
在真机上测试过吗?
-
你还需要添加代码 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;方法。可能有一些东西会崩溃。
-
我已经在真实设备中测试过它的崩溃并且我已经包含了它的所有委托方法。
-
问题已解决,关于添加目标,我在叠加视图中添加了目标,而不是在自身中添加。
标签: ios iphone ios7 uiimagepickercontroller