0

我正在开发 iPad 应用程序,当我们单击右栏按钮时,我正在执行如下操作:

    -(IBAction)camerabuttonAction:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
   picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.delegate = self;

    self.popoverController = [[UIPopoverController alloc] initWithContentViewController:picker];
   [self.popoverController presentPopoverFromRect:CGRectMake(50, -250, 500, 300) inView:appDelegate.splitview.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

我的问题是,当我处于景观模式时,如果我单击按钮。相机以纵向模式显示(图像以反向模式显示)。但是,如果我摇动 iPad,它就会显示在 LandScape 中。

对于 ios6 中的方向,我使用以下方法,但我没有写任何与 UIImagePickerControllerSourceTypeCamera 相关的内容

    - (void)viewWillLayoutSubviews
{
if([self interfaceOrientation] == UIInterfaceOrientationPortrait||[self interfaceOrientation] ==UIInterfaceOrientationPortraitUpsideDown)
    {
}
    else if ([self interfaceOrientation] == UIInterfaceOrientationLandscapeLeft||[self interfaceOrientation] == UIInterfaceOrientationLandscapeRight)
    {
}

}

    -(NSUInteger)supportedInterfaceOrientations
{

    return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationPortrait;
}
4

1 回答 1

3

你不应该这样做。苹果文档摘录:

重要提示: UIImagePickerController 类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改,但有一个例外。您可以将自定义视图分配给 cameraOverlayView 属性,并使用该视图来呈现附加信息或管理相机界面和代码之间的交互。

它在这里:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

于 2013-03-20T11:06:38.070 回答