gpt4 book ai didi

ios - iOS9中如何呈现PopOver

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:14 26 4
gpt4 key购买 nike

我正在尝试创建一个弹出框,当我呈现 View Controller 时,背景始终为纯黑色且大小为全屏。

我似乎无法弄清楚哪里出了问题,这是我的代码

  @IBAction func distancePopOver( sender : UIBarButtonItem){

//a UIViewController that I created in the storyboard
let controller = storyboard!.instantiateViewControllerWithIdentifier("distancePopOver")
controller.modalPresentationStyle= UIModalPresentationSTyle.PopOver
controller.preferredContentSize = CGSizeMake(200,30)
self.presentViewController(controller, animated: true, completion: nil)

//Configure the Popover presentation controller
let popController = (controller.popoverPresentationController)!
popController.permittedArrowDirections = UIPopoverArrowDirection.Down
popController.barButtonItem = sender
popController.delegate = self
}

每当我单击 UIBarButtonItem 时,它都会全屏显示 View ,但它不应该是我在第 5 行中指定的大小吗?

最佳答案

Popovers 现在非常挑剔。首先,您需要在呈现之前配置 popoverPresentationController。

其次,确保您的箭头方向指向箭头指向的方向,而不是内容与 UIBarButtonItem 相关的位置。因此,如果它位于 UIToolbar 内部(并且靠近屏幕底部),您将需要 .Down 否则如果它是导航栏(靠近顶部),您将需要使用 。向上

@IBAction func distancePopOver( sender : UIBarButtonItem){

//Configure the Popover presentation controller
let popController = (controller.popoverPresentationController)!
popController.permittedArrowDirections = .Down // .Up
popController.barButtonItem = sender
popController.delegate = self

//a UIViewController that I created in the storyboard
let controller = storyboard!.instantiateViewControllerWithIdentifier("distancePopOver")
controller.modalPresentationStyle = .Popover
controller.preferredContentSize = CGSizeMake(200,30)

presentViewController(controller, animated: true, completion: nil)
}

现在,如果您走到这一步仍然无法正常工作,那是因为弹出窗口在紧凑尺寸类中的默认行为是填满屏幕。由于您已经将 View Controller 设置为弹出窗口的委托(delegate),因此您只需要实现此委托(delegate)函数:adaptivePresentationStyleForPresentationController(_:traitCollection:) 并返回 .None演示风格。这将使您甚至可以在 iPhone 上显示真实的弹出窗口。请参阅我的博文:iPhone Popover有关执行此操作的完整示例。

关于ios - iOS9中如何呈现PopOver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com