我有时会创建一个实用程序类来显示警报等。我通常做的是让我呈现视图控制器的方法将当前视图控制器作为参数。这种方法效果很好。
编辑:
这是我的一个项目中文件 Utils.swift 中的一个示例方法。它定义了一个在当前视图控制器上显示 UIAlertController 警报的类函数:
class Utils
{
static let sharedUtils = Utils()
class func showAlertOnVC(
targetVC: UIViewController,
var title: String,
var message: String)
{
title = NSLocalizedString(title, comment: "")
message = NSLocalizedString(message, comment: "")
let alert = UIAlertController(
title: title,
message: message,
preferredStyle: UIAlertControllerStyle.Alert)
let okButton = UIAlertAction(
title:"OK",
style: UIAlertActionStyle.Default,
handler:
{
(alert: UIAlertAction!) in
})
alert.addAction(okButton)
targetVC.presentViewController(alert, animated: true, completion: nil)
}
}
上面的代码定义了一个类 Utils。请注意,它没有任何基类,这在 Swift 中是可以的。
接下来,它定义了一个公共静态变量 sharedUtils,您可以使用它来访问单例 Utils 类。
最后,它定义了一个类方法showAlertOnVC,可用于在当前视图控制器之上显示一个 UIAlertController 警报。要使用showAlertOnVC,您可以从当前视图控制器调用它并将self 作为targetVC 参数传递。