我正在尝试将UIPopoverView添加到我的Swift iOS 8应用程序,但我无法访问PopoverContentSize属性,因为popover没有显示正确的形状.我的代码:
var popover: UIPopoverController? = nil
func addCategory() {
var newCategory = storyboard.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
var nav = UINavigationController(rootViewController: newCategory)
popover = UIPopoverController(contentViewController: nav)
popover!.setPopoverContentSize(CGSizeMake(550, 600), animated: true)
popover!.delegate = self
popover!.presentPopoverFromBarButtonItem(self.navigationItem.rightBarButtonItem, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
输出:

当我通过UIPopoverPresentationController做同样的事情时,我仍然没有完成它.这是我的代码:
func addCategory() {
var popoverContent = self.storyboard.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
var nav = UINavigationController(rootViewController: popoverContent)
nav.modalPresentationStyle = UIModalPresentationStyle.Popover
var popover = nav.popoverPresentationController as UIPopoverPresentationController
popover.delegate = self
popover.popoverContentSize = CGSizeMake(1000, 300)
popover.sourceView = self.view
popover.sourceRect = CGRectMake(100,100,0,0)
self.presentViewController(nav, animated: true, …Run Code Online (Sandbox Code Playgroud) 我向你保证,我确实在我的问题中寻找答案,但没有一个是有帮助的.在这里,我得到了一个简单的代码,它应该UIImagePickerController在一个UIPopoverController:
-(void)takePicture:(id)sender{
UIImagePickerController *picker=[[UIImagePickerController alloc] init];
picker.delegate=self;
picker.sourceType=UIImagePickerControllerSourceTypeCamera;
picker.allowsEditing=YES;
UIPopoverController *poc=[[UIPopoverController alloc]
initWithContentViewController:picker];
[poc presentPopoverFromBarButtonItem:bbItem
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
现在,即使从我第一次[UIPopoveController dealloc]到达时...错误和程序崩溃.根据ARC,我没有做任何保留,重新发布或自动释放.UIPopoverControllers当受益于ARC时,有什么特别的考虑吗?
memory-management uipopovercontroller ios automatic-ref-counting
我的应用程序(iPad; iOS 6)是一个仅限风景的应用程序,但是当我尝试使用UIPopoverController来显示照片库时,它会抛出此错误:
Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES.我尝试更改了很多代码,但我没有运气.
我有一个托管UINavigationController的UIPopoverController,它包含一个小的视图控制器层次结构.
我按照文档和每个视图控制器,我设置了视图的popover-context大小,如下所示:
[self setContentSizeForViewInPopover:CGSizeMake(320, 500)];
Run Code Online (Sandbox Code Playgroud)
(每个控制器的大小不同)
当我在层次结构中向前导航时,这可以正常工作 - 弹出窗口自动动画大小更改以对应于推送的控制器.
但是,当我通过导航栏的"后退"按钮通过视图堆栈"返回"时,弹出窗口不会改变大小 - 它仍然与最深的视图一样大.这似乎对我不利; 我希望popover能够尊重弹出视图堆栈时设置的大小.
我错过了什么吗?
谢谢.
uiviewcontroller uinavigationcontroller uipopovercontroller ios
有谁知道是否UIPopoverPresentationController可以用来在iPhone上展示弹出窗口?想知道Apple是否在iOS 8上添加了此功能,试图为iPad和iPhone创建更统一的演示控制器.
不确定是否可以提出/回答Beta的问题.在那种情况下我会删除它.
我UIBarButtonItem使用Xcode Storyboards 创建了一个popover (所以没有代码),如下所示:

提出popover工作得很好.但是,当我点击它使它出现时,我无法让popover 消失UIBarButtonItem.
按下按钮(第一次)时会出现弹出窗口.当再次按下该按钮(第二次)时,它上面会出现相同的弹出窗口,所以现在我有两个弹出窗口(如果我继续按下按钮,则会有更多弹出窗口).根据iOS人机界面指南,我需要在第一次点击时显示弹出窗口并在第二次点击时消失:
确保一次只能在屏幕上看到一个弹出窗口.您不应同时显示多个弹出窗口(或设计为外观和行为的自定义视图).特别是,您应该避免同时显示级联或层次结构的弹出窗口,其中一个弹出窗口从另一个弹出窗口出现.
当用户UIBarButtonItem再次点击时,如何解除popover ?
objective-c uibarbuttonitem uipopovercontroller ios uistoryboard
我有一个包含UINavigationController的popover.我可以很好地显示popover,它包含navController就好了.navController包含一个tableView,当我选择一个项目时,它会创建一个新的详细信息视图:
DeviceDetailViewController *detailViewController =
[[[DeviceDetailViewController alloc] initWithNibName:@"DeviceDetailViewController" bundle:nil] autorelease];
Run Code Online (Sandbox Code Playgroud)
然后我把它推到新的视图控制器:
[self.navigationController pushViewController:detailViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
这是出现问题时: 之后的酥料饼调整大小以在iPad上可用的最大高度推新视图.
我已经尝试将xib中所有视图的高度设置为固定高度而不是灵活.我试过明确设置弹出窗口的高度.我也尝试使用不同的视图控制器作为子视图.问题仍然是:在酥料饼想将自己调整到最大高度时会自动新视图推送到导航控制器.
这是一个问题,讨论在推送新视图时试图故意控制弹出窗口的大小:
我认为这可能是一种控制大小的强力方法.然而,奇怪的是,它实际上会导致一些快速的图形怪癖(好像视图正在进行动画处理),然后继续调整大小,如上所述.
换句话说,某些东西确实迫使popover达到其最大高度,并且似乎在调用所有委托方法之后发生.
是导航控制器吗?有没有人见过这种事?
这个错误表明了什么:
"Popovers cannot be presented from a view which does not have a window."
我正在使用此代码:
mediaLibraryPopover = [[UIPopoverController alloc]
initWithContentViewController:avc];
[self.mediaLibraryPopover presentPopoverFromRect:[theButton bounds]
inView:theButton
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Run Code Online (Sandbox Code Playgroud)
我在Xcode 7中收到此警告:
不推荐使用UIPopoverController,在iOS 9.0中首先弃用 - 不推荐使用UIPopoverController.弹出窗口现在实现为UIViewController演示.使用UIModalPresentationPopover和UIPopoverPresentationController的模态表示样式.
ios ×5
ipad ×3
objective-c ×3
ios8 ×2
uipopover ×2
deprecated ×1
ios6 ×1
iphone ×1
landscape ×1
swift ×1
uikit ×1
uistoryboard ×1