小编典典

如何在全局Swift中创建UialertController

swift

我正在尝试uialertcontrollerConfig.swift文件中创建如下。

static func showAlertMessage(titleStr:String, messageStr:String) -> Void {
    let window : UIWindow?
    let alert = UIAlertController(title: titleStr, message: messageStr, preferredStyle: UIAlertControllerStyle.Alert);
    self.window!.presentViewController(alert, animated: true, completion: nil)
}

问题是我发现了问题 self.window!.

类型“配置”没有成员“窗口”

请让我知道如何解决该问题。


阅读 387

收藏
2020-07-07

共1个答案

小编典典

self.window表示window该类中有一个对象,事实并非如此。

您将需要let window : UIWindow?与with 一起使用window?.presentViewController(alert, animated: true, completion: nil),但这无济于事,因为此窗口实际上并不代表任何现有的窗口,而且它也不是视图控制器。

因此,我建议您将要使用的实际视图控制器传递给该方法:

static func showAlertMessage(vc: UIViewController, titleStr:String, messageStr:String) -> Void {
    let alert = UIAlertController(title: titleStr, message: messageStr, preferredStyle: UIAlertControllerStyle.Alert);
    vc.presentViewController(alert, animated: true, completion: nil)
}

然后从可使用UIViewController对象的类中调用它。

2020-07-07