我是Swift 2的新手。我试图在另一个文件中创建一个UIAlertController。
这是我的代码:
class my_view_error: UIViewController {
func my_error(my_title: String, my_message: String) {
let alertController = UIAlertController(title: my_title, message: my_message, preferredStyle: .Alert)
let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in }
alertController.addAction(OKAction)
self.presentViewController(alertController, animated: true) {}
}
}
我收到编译时错误:
警告:尝试显示其视图不在窗口层次结构中!
我的问题是,是否可以在ViewController.swift
以外的文件中创建ViewController?
答案 0 :(得分:0)
您创建了一个名为UIViewController
的{{1}}子类。 my_view_error
方法UIViewController
期望presentViewController
(一个self
)在调用方法时显示在屏幕上。
您的my_view_error
功能完全正常,但应将其移至实际在屏幕上的视图控制器。无需创建my_error
只是为了呈现UIViewController
。实际上,UIAlertController
是UIAlertController
,并且不需要自定义视图控制器的帮助。
与任何视图控制器一样,呈现警报的视图控制器必须位于屏幕上才能执行演示。
每个视图控制器可能都有自己的UIViewController
文件。但是,无需为.swift
创建一个。
这是使用UIAlertController
上的rootViewController
获取当前屏幕视图控制器的函数的一个版本,然后使用它来显示警报:
UIApplication