Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS快速弹出视图控制器_Ios_Swift_Uiviewcontroller - Fatal编程技术网

iOS快速弹出视图控制器

iOS快速弹出视图控制器,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我需要一个ViewController向上滑动,居中并覆盖当前的ViewController。我原以为以下代码可以工作,但实际上不行: let view = storyboard?.instantiateViewControllerWithIdentifier("castSpell") as! CastSpellViewController view.modalPresentationStyle = .OverCurrentContext presentViewController(view,

我需要一个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添加为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。