演示模态视图控制器不显示为表单

问题描述:

我是iOS编程新手。我正在学习如何在iOS中使用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被显示,但画面看起来像普通的UIViewController - >这是不是我所期待--->表模态

谢谢!

+1

AFAIK形式表仅适用于ipad公司,如果要复制的是你需要可能建立一个自定义视图自己,或发现iPhone手机它已经是一个开源组件。 – Mike

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

在横向常规环境中,演示风格 显示屏幕中居中的内容。内容区域的宽度和高度均小于屏幕尺寸,调光视图 放置在内容下方。如果设备处于横向 方向并且键盘可见,则视图的位置向上调整为 ,以便视图保持可见。所有未覆盖区域 都会变暗以防止用户与其进行交互。

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

适用于iOS 3.2或更高版本。

好吧,如果您想要在iPhone或iPad上显示表单样式表,您需要计算大小并将它们与您制作的动画一起显示出来并加载到您的视图控制器上。

或者你可以检查此库https://github.com/m1entus/MZFormSheetController 他们做了最艰苦:)

+0

你想在iPhone上做到这一点? –

+0

谢谢。我现在明白了。 – Loc