Objective c 全屏iPad超控器

Objective c 全屏iPad超控器,objective-c,ios,cocoa-touch,ipad,uipopovercontroller,Objective C,Ios,Cocoa Touch,Ipad,Uipopovercontroller,我有一个iPad应用程序,它通过UIPopoverController显示UIImagePicker。 我想让popovercontroller全屏(或者至少尽可能大) 我正在使用presentPopoverFromRect方法和一个新的cRect,我已经设置了不同的宽度和高度,但没有结果。imagepicker的源是UIImagePickerControllerSourceTypePhotoLibrary UIPopoverController* popoverController = [[U

我有一个iPad应用程序,它通过
UIPopoverController
显示
UIImagePicker
。 我想让popovercontroller全屏(或者至少尽可能大)

我正在使用
presentPopoverFromRect
方法和一个新的
cRect
,我已经设置了不同的宽度和高度,但没有结果。imagepicker的源是
UIImagePickerControllerSourceTypePhotoLibrary

UIPopoverController* popoverController = [[UIPopoverController alloc] initWithContentViewController:photoPicker];
popoverController.delegate = self;
popoverController presentPopoverFromRect:CGRectMake(0, 0, 2500, 2500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

我可以全屏播放吗?那么sourcetype
UIImagePickerControllerSourceTypeCamera

要设置popover大小,您可以覆盖viewcontroller中的
-contentSizeForViewInPopover
,它是 放置在超级控制器中


presentPopoverFromRect
用于定义打开popover的帧,而不是设置其大小

您可能还需要一个ModalViewController?这一款有4种不同的呈现方式(其中一种是全屏)

一个很好的例子是在这个问题中编写的原型: (它位于//--EDIT--//)


如果这是为您准备的,请查看。

我刚刚验证了该代码在iPad1和iPad4上是否有效(这意味着它在iOS 5.1.1-6.1.2中受支持)

您应该注意到,很难排除popover,因为它将在纵向或横向上“填充屏幕”。我的appDelegate.splitViewController中有以下方法:

- (BOOL)shouldAutomaticallyForwardRotationMethods {

    NSLog(@"MG - shouldAutomaticallyForwardRotationMethods");
    return YES;
}

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {

    NSLog(@"MG - automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers");
    return YES;
}
只需在VC的一角取消隐藏/隐藏一个按钮,即可通过以下方式解除锁定:

[popover dismissPopoverAnimated:YES];

还应注意,“popover”是一个强属性,否则当它试图呈现时,您将收到一条释放消息。

这不起作用。这就是我最初尝试的方式,直到我遇到一个异常:“在iPad上,UIImagePickerController必须通过UIPopoverController显示”,然后我需要扩展UIImagePickerController并在那里添加-contentSizeForViewInPopover方法?这是设置其大小的唯一方法吗?
UIImagePickerController
继承自
UIViewController
,因此它已经实现了
-contentSizeForViewInPopover
。只需使用
popoverController.contentSizeForViewInPopover=CGSizeMake(w,h)加载到popover控制器之前
[popover dismissPopoverAnimated:YES];