【问题标题】:Can't Present View Controller Modally, with specific size无法以特定大小模态呈现视图控制器
【发布时间】:2017-08-02 15:28:04
【问题描述】:

我有一个视图控制器,它在其中呈现另一个视图控制器,模态(底部动画)。

我正在尝试呈现具有特定大小的视图控制器,我希望它以模态方式呈现,但在这种情况下是其原始大小的 80%。

let newVC = tabBarController.storyboard?.instantiateViewController(withIdentifier: "newPostVC") as? NewPostVC
newVC.view.frame = CGRect(x: 0, y: 0, width: tabBarController.view.frame.width, height: tabBarController.view.frame.height * 0.8)

tabBarController.present(newVC, animated: true)

但视图控制器会以其完整尺寸(屏幕尺寸)呈现。 我认为我必须调整视图控制器的大小,但我可能错了。

我在故事板中的视图控制器的过渡样式设置为:垂直覆盖,演示设置为:全屏。

这可能是问题吗?

你能给我一个提示吗?

谢谢:)

【问题讨论】:

标签: ios swift3 presentviewcontroller


【解决方案1】:

尝试做这样的事情。

创建一个 ContainerVC 以编程方式添加 newVC 作为 subView 。 ContainerVC中viewDidLoad()

  1. newVC 的约束设置为容器大小的80%。您可以使用Anchorage 之类的框架轻松设置此约束。
  2. 设置您的backgroundColor = .clear
  3. 将演示样式设置为.overCurrentContext 像这样modalPresentationStyle = .overCurrentContext

在展示它的同时,你可以这样做

//create view controller
    let VC = ContainerVC()
//present modal
    self.present(VC, animated: true, completion: nil) 

【讨论】:

  • 我明白了。我正在使用动画来关闭容器内的视图控制器。我已经实现了一个动画,用于在具有特定/所需属性的容器内呈现视图控制器,并且它起作用了。
猜你喜欢
  • 2011-12-03
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多