iOS快速弹出视图控制器
我需要一个ViewController向上滑动,居中并覆盖当前的ViewController。我原以为以下代码可以工作,但实际上不行:iOS快速弹出视图控制器,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我需要一个ViewController向上滑动,居中并覆盖当前的ViewController。我原以为以下代码可以工作,但实际上不行: let view = storyboard?.instantiateViewControllerWithIdentifier("castSpell") as! CastSpellViewController view.modalPresentationStyle = .OverCurrentContext presentViewController(view,
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添加为popover视图。容器视图是可选的。我喜欢在子视图位置固定时使用容器视图。我可以使用autolayout定位容器,并在需要时将其隐藏
在您的情况下,您可以将容器/子视图放置在屏幕底部,从那里您需要向上滑动子视图
UIView.animateWithDuration(0.5) { () -> Void in
//Animate here
}
然后在上述代码块内更改容器/子视图的框架
注意:容器视图只是一个普通的UIView。我喜欢给它命名为container:)我的代码现在看起来像这样,但它仍然做同样的事情:让view=storyboard?。实例化eviewController的whiteIdentifier(“castSpell”)为!CastSpellViewController self.modalPresentationStyle=.OverCurrentContext presentViewController(视图,动画:true,完成:nil)恢复到原始代码并添加
self.definesPresentationContext=true
这是用于iOS 7还是用于iOS 8?它是iOS 8。实际上,我找到了一种方法,使用Popover并将箭头设置为0。