无法以模式显示视图控制器,具有特定大小

时间:2017-03-12 16:01:35

标签: ios swift3 presentviewcontroller

我有一个View Controller,它以模态方式呈现另一个视图控制器(底部动画)。

我正在尝试呈现具有特定大小的视图控制器,我希望它以模态方式呈现,但在这种情况下,它是原始大小的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)

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

故事板中的我的视图控制器将过渡样式设置为:Cover Vertical,并将Presentation设置为:Full Screen。

这可能是问题吗?

你能给我一个提示吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

尝试做这样的事情。

创建ContainerVC以编程方式添加newVC作为子视图。在ContainerVC viewDidLoad()

  1. newVC上的约束设置为容器大小的80%。您可以使用Anchorage之类的框架轻松设置此约束。
  2. 设置backgroundColor = .clear
  3. 将演示文稿样式设置为.overCurrentContext,如modalPresentationStyle = .overCurrentContext
  4. 在呈现它时你可以这样

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