提供的模态视图控制器不像表单

时间:2015-09-16 00:09:35

标签: ios swift modal-dialog modalviewcontroller presentviewcontroller

我是iOS编程新手。我正在学习如何在iOS中使用Modal。我有一个按钮。内部按钮点按处理程序我想显示一个像Modal形式的UIViewController。

这是我的代码:

@IBAction func userEditClick(sender: AnyObject) {

    let userCtrl = UserEditViewController(nibName: "UserEditViewController", bundle: nil)
    userCtrl.callback = self

    userCtrl.modalPresentationStyle = UIModalPresentationStyle.FormSheet
    //userCtrl.preferredContentSize = CGSizeMake(400, 800);

    self.presentViewController(userCtrl, animated: true, completion: nil)

}

显示UserEditViewController但屏幕看起来像Normal UIViewController - >这不是我的预期--->表格模式

谢谢!

1 个答案:

答案 0 :(得分:1)

您只需调用presentViewController即可。那将完成这项工作。 presentViewController的默认动画是模态的。此外,当您看到文档时,它说该设置将适应环境。所以我想当你在iPhone上时,FormSheet必须覆盖整个屏幕。我想你可能会坚持苹果的默认行为。

  

在水平常规环境中,表示样式   显示屏幕中心的内容。的宽度和高度   内容区域小于屏幕尺寸和调光视图   放在内容下面。如果设备处于景观中   方向和键盘是可见的,视图的位置是   向上调整以使视图保持可见。所有未覆盖的区域   变暗以防止用户与他们互动。

     

在水平紧凑的环境中,此选项的行为与   UIModalPresentationFullScreen。

     

适用于iOS 3.2及更高版本。

好的,如果你想在iPhone或iPad上显示相似的表单,你需要计算大小并用你制作的动画显示它们并将它加载到你的视图控制器上。

或者您可以查看此存储库https://github.com/m1entus/MZFormSheetController 他们做了很难的部分:)