在单独的类文件中定义UIAlert,然后从任何视图控制器调用它

时间:2014-11-24 10:11:12

标签: ios swift

为了避免重复代码,我想创建一个单独的类文件来处理我的应用程序中的所有错误(主要是从后端块返回),并在用户可以关闭的警报弹出窗口中将它们呈现给用户。所以我创建了一个类,并把它放在里面:

import Foundation

class Errors {

func errors(errorText: String, currentViewController: UIViewController) {

    var alert = UIAlertController(title: "There was an error", message: errorText, preferredStyle: UIAlertControllerStyle.Alert)

    alert.addAction(UIAlertAction(title: "Close", style: .Default, handler: nil))


    currentViewController.presentViewController(alert, animated: true, completion: nil)


    }
}

然后从任何viewController调用此函数时,我执行此操作:

            Errors().errors("Error text", currentViewController: GameScreenViewController)

这项工作没有成功,编译器希望我在GameScreenViewController之后添加(),导致应用程序行为不正常。

我想这不是正确的方法,请你告诉我如何正确地做到这一点。请在Swift中回答。

1 个答案:

答案 0 :(得分:1)

你需要使用'self'而不是GameScreenViewController作为第二个参数来控制它,你需要在视图控制器中显示错误。

您当前传递的内容不是对象,而只是一个类名。

class GameScreenViewController : UIViewConroller {

    // your viewcontroller logic

    func showError(){
        // try this:
        Errors().errors("Error text", currentViewController: self)
    }

}