我有两个视图控制器,我想呈现第一个VC的视图控制器(VC)。第二个VC的尺寸较小。我想在第一个上显示第二个视图控制器。像一个弹出窗口。如果我们添加另一个从下到上滑动但在导航栏停止的视图控制器,你可以想象它。
这是我的代码:
@IBAction func showSecondVC(sender: AnyObject) {
let secondViewController = storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController
secondViewController.view.frame = CGRect(origin: CGPoint(x: view.frame.origin.x, y: header.frame.height), size: CGSize(width: view.frame.width, height: view.frame.height - header.frame.height))
secondViewController.definesPresentationContext = true
secondViewController.providesPresentationContextTransitionStyle = true
secondViewController.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
self.presentViewController(secondViewController, animated: true, completion:nil)
}
您可以看到我为secondViewController
设置了框架。我希望它会与这个帧一起使用,但如果我添加完成块并在动画后显示它的帧,它将与第一个View Controller相同。
我还想提一下,我尝试以纵向方式制作它。
答案 0 :(得分:3)
如果您在iPhone中尝试此功能,呈现的视图控制器的内置根视图将始终为全屏,因此您调整大小的努力将无法成功。 (iPad是一个不同的故事)
只是让根视图原样(即不要与它的全屏尺寸对抗),但要使其背景颜色颜色清晰。如果你想呈现某种自定义视图/内容/无论它是什么......例如一个带有一些警告的小视图......或者一些选项。只需将其添加为根视图的子视图。
更新: 正如UIViewController类文档所说:
“在水平紧凑的环境中,呈现的视图始终为全屏。”
我能想象到的唯一组合是横向模式下的Iphone6 +,其中水平尺寸等级比紧凑更大。所以你运气不好因为你想要肖像。
答案 1 :(得分:0)
在将ViewController的背景颜色设置为清除后,添加伯爵格雷的响应。创建具有以下属性集的segue: