【问题标题】:UIModalPresentationStyle.PageSheet does not display ViewController contentUIModalPresentationStyle.PageSheet 不显示 ViewController 内容
【发布时间】:2014-11-06 17:16:51
【问题描述】:

我目前有一个在 PresentationStyle.PageSheet 中以模态方式呈现 VC 的 segue。我以编程方式和仅使用情节提要完成了此操作。我用这两种方法得到了相同的结果,模态弹出显示本身,但不显示来自 VC 的 UIView 内的任何内容。它只会显示视图的背景颜色,仅此而已。我还想指出,如果我执行默认模态 segue(全屏)但页面表演示样式或使用 UIPopoverController 失败,则会显示所有内容。以下是一些屏幕截图,显示了我在说什么。

这是故事板中的样子:

这是它在模拟器和实际 ipad 上的样子:

这是我的编码方法的样子:

@IBAction func addPickUp(){
    var addPickupVC = self.storyboard?.instantiateViewControllerWithIdentifier("pickup") as AddPickupViewController
    addPickupVC.modalPresentationStyle = UIModalPresentationStyle.PageSheet
    self.presentViewController(addPickupVC, animated: true, completion: nil)
}

这是用 swift 为 ipad ios8 编写的。 我在这里想念什么?感谢任何建设性的反馈!

编辑:这是要以模态方式呈现的 VC 的文档大纲。

【问题讨论】:

    标签: swift uiviewcontroller ios8 presentviewcontroller uimodalpresentationstyle


    【解决方案1】:

    您的弹出框代码是正确的。
    可能 AutoLayout 约束存在问题。
    如您所见,您的弹出框已显示,但标签丢失。

    1. 删除您的 AutoLayout(它们将自动生成)并查看标签现在是否可见
    2. 尝试添加新标签。拖放它,不要指定任何约束
    3. 调试你的视图

      • 单击调试面板上的“调试视图层次结构”按钮



      • 现在你可以看到你的观点了。选择您的标签(如果存在)并查看其限制条件。



    4. 检查您的 AutoLayout 约束,标签是否存在于正确的Size Classes
      尺寸类显示在 UI 设计器下方。就我而言,它是(任何任何)。
      这意味着它适用于所有尺寸和所有设备。
      还要检查您的约束是否在运行时被移除。
      您可以在右侧的检查器中看到它。

    【讨论】:

    • 尺寸等级导致它无法显示。谢谢!
    • 很高兴听到它有帮助!我也遇到过类似的问题。
    【解决方案2】:

    在情节提要中,您可以简单地控制将连接从按钮拖动到呈现的 Viewcontroller。没有理由为此设置@IBAction。如果您使用 InterfaceBuilder 方法,您可以选择将 segue 上的演示样式设置为 PageSheet。

    【讨论】:

    • 是的,我做了所有这些。就像我在问题中提到的那样,我已经在情节提要中尝试了这个并且以编程方式(分别)。
    • 抱歉,第二部分看错了。您可以为该控制器添加文档大纲的屏幕截图吗?
    • 已添加。老实说,没什么可看的。我尽量保持简单。
    • 您能确定这不是自动布局问题吗?意思是,标签的高度不是 0 或类似的东西?
    • 我固定了高度和宽度,得到了相同的结果。此外,标签在预览中可见,但在模拟器或 ipad 中不可见。
    猜你喜欢
    • 1970-01-01
    • 2021-06-27
    • 2012-03-11
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2014-02-14
    • 2012-09-24
    • 2020-09-06
    相关资源
    最近更新 更多