来自容器 ViewController 的 UIPopOverPresentationViewController

Posted

技术标签:

【中文标题】来自容器 ViewController 的 UIPopOverPresentationViewController【英文标题】:UIPopOverPresentationViewController from a Container ViewController 【发布时间】:2019-12-18 17:09:03 【问题描述】:

我想展示一个来自 ContainerVC(从 Storyboard 加载)的 PopOverPresentationVC。我的代码如下:-

@IBAction func showPopOverVC(view: UIView)
  let embeddedVC: EmbeddedVC = instantantiateVC() // my personal helper method
  embeddedVC.popoverPresentationController?.sourceView = view
  embeddeVC.modalPresentationStyle = .popover
  present(embeddedVC, animated: true)

我不断收到此错误 UIPopoverPresentationController should have a non-nil sourceView or barButtonItem set before the presentation occurs. ,尽管我正确设置了 sourceView。非常感谢任何建议。

有趣的是,如果我删除该行:-

embeddeVC.modalPresentationStyle = .popover

模态演示效果很好。

【问题讨论】:

什么是view,你确定不是nil 因为它不是可选的,所以不能为零。 【参考方案1】:

所以答案是您需要按此顺序设置弹出框演示属性,如果您反转,应用程序会崩溃,我说疯了 :)

embeddeVC.modalPresentationStyle = .popover
embeddedVC.popoverPresentationController?.sourceView = view

【讨论】:

以上是关于来自容器 ViewController 的 UIPopOverPresentationViewController的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将 UIButton 添加到带有情节提要的自定义 ViewController

ViewController容器

ViewController respondsToSelector 错误的解决方法

STM32+ENC28J60+UIP协议栈实现WEB服务器示例

STM32+ENC28J60+UIP协议栈实现WEB服务器示例

如何将参数从容器视图的父 ViewController 传递到该容器视图的 PageViewController?