如何以编程方式在视图控制器上生成弹出窗口?

sin*_*Gob 7 ios swift

我的目标是以编程方式显示View Controller

当前视图控制器

在此输入图像描述

然后,如果某个事件被调用或某事,(API或Websocket)我想以编程方式调用这些视图

在此输入图像描述

但我想先调用最后一个视图Controller,它应该位于第一个View控制器之上

在此输入图像描述

从技术上讲,最后一个视图将具有

Transition is Cross Dissolve
Presentation is Over Current Context
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Vla*_*nko 5

我认为最好的方法是由xib文件为可重用视图创建.然后,您可以创建单例并在每次要显示此模态视图时调用此视图.

要确保视图不与任何内容重叠,您必须将其添加到当前控制器,而不是添加到AppDelegate窗口.

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window!.addSubview(yourModalView)
Run Code Online (Sandbox Code Playgroud)


Feb*_*hah 4

根据您的要求,您可以为导航控制器设置一个storyBoardID。

在特定事件上只需实例化导航控制器 let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main) let myNavController = storyboard.instantiateViewController(withIdentifier: "MyStoryboardId") as? UINavigationController

然后呈现或显示该导航控制器

self.present(myNavController, animated: true, completion: nil)

viewDidLoad()第一个视图控制器的方法上执行到 popupViewController 的 segue。

现在,第二个视图将显示在第一个视图控制器上方。使用后您可以关闭此视图。