Ios 不使用AppDelegate获取UIWindow
我需要直接在窗口中添加一个视图。我可以通过UIApplication访问AppDelegate上的窗口对象来实现这一点。我打算使这段代码尽可能可重用,但这使得该方法毫无用处。如何在不使用AppDelegate的情况下以编程方式访问UIWindowIos 不使用AppDelegate获取UIWindow,ios,swift,Ios,Swift,我需要直接在窗口中添加一个视图。我可以通过UIApplication访问AppDelegate上的窗口对象来实现这一点。我打算使这段代码尽可能可重用,但这使得该方法毫无用处。如何在不使用AppDelegate的情况下以编程方式访问UIWindow 我正在用Swift编写代码,但Objective-C示例可能也会有所帮助。任何视图都会引用当前窗口 在UIViewController中: self.view.window 好吧,我自己想出来的。您可以这样访问它: var window : UIWi
我正在用Swift编写代码,但Objective-C示例可能也会有所帮助。任何视图都会引用当前窗口 在UIViewController中:
self.view.window
好吧,我自己想出来的。您可以这样访问它:
var window : UIWindow = UIApplication.sharedApplication().keyWindow
Swift 5:
var-window:UIWindow=UIApplication.shared.keyWindow
请注意,keyWindow
在iOS 13.0中被弃用。
如果您的目标是iOS 13.0或更高版本,.Swift 3版本:
let window :UIWindow = UIApplication.shared.keyWindow!
以下内容适用于Swift 4,并将安全地打开
ui窗口
,因此无需强制施力:
if let window = UIApplication.shared.keyWindow {
// Do stuff
}
您可以通过以下方式获得第一个窗口:
let window = UIApplication.shared.windows[0]
嗯,我有点不对劲。UIWindow没有名为addSubview的成员&UIWindow没有名为“center”的成员。注意:我在一个UIView上做这件事,当UIViewController调用它的方法时,它试图将自己添加到窗口中。欢迎使用stackoverflow。这篇文章质量很差,需要大幅度改进才能发挥作用。请问,你能扩展你的答案吗?这是不推荐的,你如何在swift 5中做到这一点?