给某些ViewControllers访问函数的最有效方法

时间:2017-07-16 13:19:25

标签: ios swift uialertview access-control

我的应用程序包含大量ViewController个。还有一组函数返回UIAlertControllers通知用户有关其帐户的事件。 以下是一个这样的功能的例子:

func signInSuccessAlert() -> UIAlertController {
        //signInSuccessAlert
        let signInSuccessAlert = UIAlertController(title: "Success", message: "You have been successfully signed in!", preferredStyle: .alert)
        signInSuccessAlert.addAction(UIAlertAction(title: "Okay", style: .default, handler: nil))
        return signInSuccessAlert
    }

我的目标是能够在一行中显示这些UIAlertController。像这样:

present(signInSuccessAlert(), animated: true, completion: nil)

使这些功能仅用于需要它们的ViewController的最佳方式是什么?与全局声明它们相反。

1 个答案:

答案 0 :(得分:0)

您可以创建UIViewController的扩展并在那里声明所有这些函数。 像这样:

extension UIViewController
{

    func signInSuccessAlert() -> UIAlertController {
        //signInSuccessAlert
        let signInSuccessAlert = UIAlertController(title: "Success", message: "You have been successfully signed in!", preferredStyle: .alert)
        signInSuccessAlert.addAction(UIAlertAction(title: "Okay", style: .default, handler: nil))
        return signInSuccessAlert
    }

}

这样所有的viewcontrollers都可以访问这些功能。如果您想要只访问某些视图控制器,则必须使用评论中建议的AgRizzo等协议。