UIAlertController作为跨视图控制器访问的通用函数

时间:2015-11-19 02:15:05

标签: ios swift uialertcontroller

我的应用验证从不同视图控制器收到的数据,并使用UIAlertViewController显示警告消息。它旨在满足设备after IOS8。因此,无需担心UIAlertView处理。

目前,我在所有视图控制器中都有alert handler功能(如下所示)。

//MARK: Alert handler

func alert(info:String) {
    let popUp = UIAlertController(title: "Alert", message: info, preferredStyle: UIAlertControllerStyle.Alert)
    popUp.addAction(UIAlertAction(title: "OK!", style: UIAlertActionStyle.Default, handler: {alertAction in popUp.dismissViewControllerAnimated(true, completion: nil)}))
    self.presentViewController(popUp, animated: true, completion: nil)
}

我只是想知道我是否可以在某处编写此函数,并且可以在视图控制器之间共享。

如果我要在共享类中使用此函数,是否可以每次将ViewController实例传递给函数。

有人可以建议最好的方法来做到这一点。

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

创建一个新的Swift文件。

class AlertMaker {
func alert(info:String, viewController: UIViewController) {
    let popUp = UIAlertController(title: "Alert", message: info, preferredStyle: UIAlertControllerStyle.Alert)
    popUp.addAction(UIAlertAction(title: "OK!", style: UIAlertActionStyle.Default, handler: {alertAction in popUp.dismissViewControllerAnimated(true, completion: nil)}))
    viewController.presentViewController(popUp, animated: true, completion: nil)
}
}

致电你的VC:

AlertMaker().alert("Info to display", self)