我想在 Swift 项目中创建一个新的 UIWindow,但是出了点问题

Posted

技术标签:

【中文标题】我想在 Swift 项目中创建一个新的 UIWindow,但是出了点问题【英文标题】:I want to create a new UIWindow in Swift project,but something wrong 【发布时间】:2016-01-29 03:27:00 【问题描述】:

我在 Swift 中创建了一个新项目,我想创建一个新的 UIWindow,这是我控制器中的代码:

override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let myWindow = UIWindow(frame: UIScreen.mainScreen().bounds)
        myWindow.backgroundColor = UIColor.redColor()
        myWindow.hidden = false


    

当我运行项目时,我收到消息:'应用程序窗口在应用程序启动结束时应该有一个根视图控制器'。但是在 Objective-C 项目中,没关系。

谁能告诉我我的项目出了什么问题?

谢谢。

【问题讨论】:

ios 上你不创建窗口。你想达到什么目的?通常你会有一个带有 UIViewControllers 的 Storyboard。显示的是 ViewControllers 中的视图。有一个UIWindow,但它在幕后,你一般不需要处理。 @Michael 我想在swift中实现一个区域选择器,背景昏暗。我曾经通过OChere is the code创建一个新窗口实现了一个actionsheet 不确定你所说的 areaPicker 是什么意思。但只需创建一个 areaPicker 实例并添加 self.view.addSubview(areaPickerView) 【参考方案1】:

最后,我自己得到了答案。你不能在加载新的ViewController的时候创建一个新的UIWindow,但是你可以在加载视图之后进行。代码如下:

    let myWindow = Void->UIWindow in
        let cWindow = UIWindow(frame: UIScreen.mainScreen().bounds)
        cWindow.backgroundColor = UIColor.redColor()
        return cWindow
    ()

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) 

        myWindow.hidden = false
    

【讨论】:

以上是关于我想在 Swift 项目中创建一个新的 UIWindow,但是出了点问题的主要内容,如果未能解决你的问题,请参考以下文章

我应该在每个类方法中创建一个新的 Promise 吗?

在 swift 3 中创建复杂的 NSCompoundPredicate

在 Swift 3 中创建具有自定义大小的 VideoPlayer

如何在 dll 项目中的 C++ 中创建命名空间和构造函数?

如何使用 Swift 4 在 iOS 9+ 中创建瀑布布局

我无法在 Swift 的类中创建空数组属性