繁体   English   中英

iOS Swift弹出视图控制器

[英]iOS Swift Popup View Controller

我需要让ViewController向上滑动,居中并覆盖当前的ViewController。 我认为以下代码可以工作,但它没有:

let view = storyboard?.instantiateViewControllerWithIdentifier("castSpell") as! CastSpellViewController
view.modalPresentationStyle = .OverCurrentContext
presentViewController(view, animated: true, completion: nil)

显示了新的ViewController,但就像全屏视图一样。 我在故事板中将它的大小设置为400x300。 我知道我可以通过在视图中显示视图然后显示叠加视图来做同样的事情。 这是我需要去的路线吗?

您需要设置呈现样式的主持人 ,而不是呈现视图。

使用self.modalPresentationStyle = .OverCurrentContext

let popOverVC = UIStoryboard(name: "StoryboardName", bundle: nil).instantiateViewControllerWithIdentifier("ViewControllerName") as! PopOverViewContoller
self.addChildViewController(popOverVC)
popOverVC.view.frame = self.containerView.frame
self.containerView.addSubview(popOverVC.view)
popOverVC.didMoveToParentViewController(self)

使用上面的代码将viewcontroller添加为弹出视图。 容器视图是可选的。 当子视图位置固定时,我喜欢使用容器视图。 我可以使用autolayout定位容器,并在需要之前将其隐藏起来。

在这种情况下,您可以将容器/子视图放在屏幕底部,从而需要向上滑动子视图。

UIView.animateWithDuration(0.5) { () -> Void in
     //Animate here
}

然后在上面的代码块中更改容器/子视图的框架。

注意:容器视图只是一个普通的UIView。 我喜欢命名容器:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM