我希望创建一个静态方法,将其放在可以启动UIAlertController的实用程序类中。但是,我收到以下错误:

“额外的参数在单元格中动画”

static func simpleAlertBox1(msg : String) -> Void{
    let alertController = UIAlertController(title: "Alert!", message: msg, preferredStyle: .actionSheet)
    let defaultAction = UIAlertAction(title: "OK", style: .default, handler: nil)
    alertController.addAction(defaultAction)
    present(alertController, animated: true, completion: nil)// error is being generated here
}

我尝试了这个,但是仍然给了我同样的错误:
presentViewController(alertController, animated: true, completion: nil)

但是,如果我要删除static,那么它可以正常工作。

最佳答案

self是UIViewController的一个实例,如果要以静态方式调用此函数,只需添加另一个要在其中显示它的param viewcontroller。 非常重要,您需要在viewDidload之后显示alertView。

这里是一个示例代码:

   class ViewController: UIViewController {

      override func viewDidLoad() {
         super.viewDidLoad()
      }

     override func viewDidAppear(_ animated: Bool) {
         ViewController.simpleAlertBox1(msg: "test", viewController: self)
      }


     static func simpleAlertBox1(msg : String , viewController : UIViewController) -> Void{

       let alertController = UIAlertController(title: "Alert!", message: msg, preferredStyle: .actionSheet)
       let defaultAction = UIAlertAction(title: "OK", style: .default, handler: nil)
       alertController.addAction(defaultAction)
       viewController.present(alertController, animated: true, completion: nil)// error is being generated here

     }
 }

关于ios - 静态方法中的UIAlertController给出错误:单元格中有额外的参数动画,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44958452/

10-09 10:14