iPhone、iOS 8:如何呈现比原始视图控制器更小的视图控制器?
我有两个视图控制器,我想展示第一个VC的视图控制器(VC)。第二,VC的规模较小。我想在第一个视图控制器上显示第二个视图控制器。像爆米花。您可以想象,如果我们添加另一个从下到上滑动但在导航栏处停止的视图控制器 这是我的密码:iPhone、iOS 8:如何呈现比原始视图控制器更小的视图控制器?,ios,iphone,swift,uiviewcontroller,presentviewcontroller,Ios,Iphone,Swift,Uiviewcontroller,Presentviewcontroller,我有两个视图控制器,我想展示第一个VC的视图控制器(VC)。第二,VC的规模较小。我想在第一个视图控制器上显示第二个视图控制器。像爆米花。您可以想象,如果我们添加另一个从下到上滑动但在导航栏处停止的视图控制器 这是我的密码: @IBAction func showSecondVC(sender: AnyObject) { let secondViewController = storyboard?.instantiateViewControllerWithIde
@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
设置了帧。我想它将与此帧,但如果我添加完成块并在动画后显示它的帧,它将与第一个视图控制器相同
编辑
我还想提到的是,我尝试在纵向方向上进行此操作。如果您在iPhone中尝试此操作,则呈现视图控制器的内置根视图将始终是全屏的,因此您调整其大小的努力将不会成功。(iPad是另一回事) 只需让根视图保持原样(即,不要反对它的全屏大小),而是使其背景色清晰。如果您想显示某种自定义视图/内容/无论它是什么..例如带有一些警告..或一些选项的较小视图。只需将其添加为根视图的子视图 更新: 正如UIViewController类文档所述: 在水平紧凑的环境中,显示的视图始终为全屏
我能想象的唯一一种组合就是Iphone6+在横向模式下,横向尺寸等级比紧凑型更大。所以你运气不好,因为你想要肖像。在将ViewController的背景色设置为“清除”后,添加Earl Grey的响应。创建具有以下属性集的segue:
- “以模态呈现”的亲切
- 向“当前上下文”演示
水平紧凑型
和水平常规型
的评论,其他手机壳呢?任何处于纵向模式的iPhone都是水平紧凑型的。在水平压缩中,第一句话适用。苹果公司选择将形状因素分类为尺寸等级。你别无选择,只能尊重它。我明白了,你能提出什么替代方案?请看我回答中的第二段,这确实是一个简单明了的解决方案。我做了一个Github回购协议就是为了这个。