gpt4 book ai didi

ios - UIPopoverPresentationController swift

转载 作者:行者123 更新时间:2023-11-28 13:21:09 52 4
gpt4 key购买 nike

我正在使用 Storyboards 和 AutoLayout。有 2 个场景,1 个是我的主视图 Controller ,带有工具栏和几个 UIBarButtonItems,1 个是应该只显示 UILabel 的 UIViewController。当用户点击我的主视图 Controller 中的工具栏时,我会使用以下代码显示弹出窗口:

func presentPopover(viewCtrl: UIViewController, item: UIBarButtonItem) {
viewCtrl.modalPresentationStyle = .Popover
let popover: UIPopoverPresentationController = viewCtrl.popoverPresentationController!
popover.permittedArrowDirections = .Any
popover.barButtonItem = item
self.presentViewController(viewCtrl, animated: true, completion: nil)
}

helpView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("HelpView“) as? HelpVC
if helpView != nil {
presentPopover(helpView!, helpButton)
}

View 已呈现,但没有 subview (UILabel) 可见。当我设置 Storyboard segues 而不是从代码进行弹出窗口演示时,会发生同样的奇怪行为。但是,当我在 UINavigationController 上推送完全相同的 View 时,一切都会正常显示。我错过了什么吗?

最好的问候,奥利弗

最佳答案

根据需要调整尺寸。如果传入,则可以设置 barbutton 而不是 sourceView。

    if let controller = viewCtrl {
controller.preferredContentSize = CGSizeMake(200,25)
controller.modalPresentationStyle = UIModalPresentationStyle.Popover
if let popover = controller.popoverPresentationController {
popover.delegate = self
popover.sourceView = viewCtrl.view
popover.sourceRect = CGRectMake(0,-5, 50, 50)
popover.permittedArrowDirections = .Any
self.presentViewController(controller, animated: true, completion: nil)
}
}

关于ios - UIPopoverPresentationController swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669664/

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