swift - UIModalPresentationStyle.PageSheet 不显示 ViewController 内容

标签 swift uiviewcontroller ios8 presentviewcontroller uimodalpresentationstyle

我目前有一个在PresentationStyle.PageSheet 中以模态方式呈现VC 的segue。我已经通过编程和 Storyboard完成了这项工作。我使用这两种方法得到了相同的结果,模式弹出显示本身,但不显示来自 VC 的 UIView 内的任何内容。它只会显示 View 的背景颜色,仅此而已。我还想指出,如果我执行默认模式转场(全屏),但页面呈现样式或使用 UIPopoverController 失败,则所有内容都会显示。以下是一些屏幕截图,显示了我正在谈论的内容。

这就是 Storyboard中的样子: storyboard

这是模拟器和实际 iPad 上的样子: enter image description here

这是我的编码方法:

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

这是为 ipad ios8 用 swift 编写的。 我在这里缺少什么?任何建设性的反馈意见都将受到赞赏!

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

最佳答案

您用于呈现弹出窗口的代码是正确的。
可能是自动布局约束有问题。
正如您所看到的,您的弹出窗口已显示,但标签丢失。

  1. 删除自动布局(它们将自动生成)并查看标签现在是否可见
  2. 尝试添加新标签。拖放它,并且不指定任何约束
  3. 调试 View

    • 点击调试面板上的“调试 View 层次结构”按钮

      enter image description here

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

      enter image description here

  4. 检查您的自动布局约束和标签是否正确 Size Classes
    尺寸类别如下 UI 设计器所示。就我而言,它是(任何任何)。
    这意味着它适用于所有尺寸和所有设备。
    另请检查您的约束是否在运行时未删除。
    您可以在右侧的检查器中看到它。

    enter image description here

关于swift - UIModalPresentationStyle.PageSheet 不显示 ViewController 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26785439/

相关文章:

ios - 强制 UITextView 正确换行

ios - 苹果 LLVM 6.0 错误

ios - UITableViewCell 内的 UITextField 滑动删除问题

ios - 如何在真实设备上将渐变应用到 iOS 10 中的 UIView

ios - 检查 `if let` 是否为零

ios - 如何返回 SignIn ViewController

ios - 将数据从 View Controller 传递到 tableviewCell

swift - 调度组 - 无法通知主线程

ios - SpriteKit : Draw line using angle and Length

ios - 在自定义 UIView 中隐藏图表