繁体   English   中英

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

[英]Defining UIAlert in a separate class file, then invoking it from any view controller

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

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回答。

您需要使用“自”而不是GameScreenViewController作为第二个参数从您要显示错误的视图控制器中调用它。

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

class GameScreenViewController : UIViewConroller {

    // your viewcontroller logic

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM