我有一个iPad应用,通过UIImagePicker
显示UIPopoverController
。
我想让popovercontroller全屏(或者至少尽可能大)。
我正在使用presentPopoverFromRect
方法和新的CGRect
我已设置为各种宽度和高度而没有结果。 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
呢?
答案 0 :(得分:1)
要设置弹出窗口大小,您可以在viewcontroller中覆盖-contentSizeForViewInPopover
放在popovercontroller。
presentPopoverFromRect
用于定义弹出窗口的框架,而不是用于设置它的大小。
答案 1 :(得分:1)
我刚刚确认此代码适用于iPad 1和iPad 4(意味着它在iOS 5.1.1 - 6.1.2中受支持)
popover = [[UIPopoverController alloc] initWithContentViewController:yourVC];
[popover setPopoverContentSize:CGSizeMake(1024, 1024)];
[popover presentPopoverFromRect:CGRectZero
inView:appDelegate.splitViewController.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
你应该注意到很难解开弹出窗口,因为它会以纵向或横向“填满屏幕”。我在appDelegate.splitViewController中有这些方法:
- (BOOL)shouldAutomaticallyForwardRotationMethods {
NSLog(@"MG - shouldAutomaticallyForwardRotationMethods");
return YES;
}
- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
NSLog(@"MG - automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers");
return YES;
}
只需取消隐藏/隐藏你角落中某个角落的按钮就可以解雇:
[popover dismissPopoverAnimated:YES];
还应该注意“popover”是一个强大的属性,或者当它试图呈现时你会得到一个解除分配的消息。
答案 2 :(得分:0)
你可能还想要一个ModalViewController吗?这个有4种不同的呈现方式(其中一个全屏)
一个很好的例子是这个问题写的原型:presentModalViewController fullscreenmode issue (它在// --- 编辑 --- //)
看看它是否适合你。