Objective c 全屏iPad超控器
我有一个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
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];