我想在 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,但是出了点问题的主要内容,如果未能解决你的问题,请参考以下文章
在 swift 3 中创建复杂的 NSCompoundPredicate
在 Swift 3 中创建具有自定义大小的 VideoPlayer