如何在Swift中的视图层次结构顶部添加视图?

Pra*_*tha 4 uiview uiwindow ios swift

我一直在使用这个:

UIApplication.sharedApplication().keyWindow?.rootViewController!.view.addSubview(self.customView)
Run Code Online (Sandbox Code Playgroud)

在应用程序视图层次结构中的所有视图上添加模式视图。

但这给我带来了问题。有时会按预期添加子视图,但有时不起作用。在哪种情况下,这将行不通,并且是在像UIAlertView这样的视图层次结构中添加模态视图的最佳方法是什么。

小智 5

根据发生的情况,一次可以有多个UIWindow-例如,如果显示系统警报,您将有两个单独的窗口(一个用于视图控制器,一个用于警报本身)。
可以为系统键盘做一个类似的例子。如果键盘具有焦点,那将是您的keyWindow。

确保将子视图添加到所有窗口顶部的一种方法是:UIApplication.sharedApplication().windows.last?.addSubview(yourSubView)

我也看到了使用该应用程序的委托,与人:UIApplication.sharedApplication().delegate?.window