繁体   English   中英

加载TableView时关闭UIAlertController

[英]Dismiss a UIAlertController while Loading a TableView

我将UIAlertController编程为加载屏幕

let waitActivityAlert = UIAlertController(title: nil, message: "Please wait...\n", preferredStyle: .alert)
let spinner = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)

func letsspin(){

    spinner.translatesAutoresizingMaskIntoConstraints = false
    waitActivityAlert.view.addSubview(spinner)


    let xConstraint = NSLayoutConstraint(item: spinner, attribute: .centerX, relatedBy: .equal, toItem: waitActivityAlert.view, attribute: .centerX, multiplier: 1, constant: 0)

    let yConstraint = NSLayoutConstraint(item: spinner, attribute: .centerY, relatedBy: .equal, toItem: waitActivityAlert.view, attribute: .centerY, multiplier: 1.4, constant: 0)

    NSLayoutConstraint.activate([ xConstraint, yConstraint])

    spinner.isUserInteractionEnabled = false


    spinner.color = UIColor.black

    spinner.startAnimating()
    let height: NSLayoutConstraint = NSLayoutConstraint(item: waitActivityAlert.view, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 100)

    waitActivityAlert.view.addConstraints([height])

    present(waitActivityAlert, animated: true)


}

我在后台加载一个TableViewController。 当我的UITableView加载单元格时,我正在使用以下函数关闭此UIAlertController

func letsstopspin(){

    spinner.stopAnimating()
    self.waitActivityAlert.dismiss(animated: true, completion: nil)

}

而且UIAlertController不会关闭,我在控制台中收到此消息:

演示或解散过程中尝试从视图控制器解散

所以我不知道如何解决这个问题。 tableView()方法之后是否可以调用任何方法? 我尝试了一切,但UIAlertController并没有关闭我尝试的任何东西。

这是我之前准备的。 如果仅从一个位置进行调用,则不需要单独的函数,但是如果您认为可能需要再次调用它,则应执行此操作-对于startActivityIndicator ,也应执行类似的操作

func stopActivityIndicator()
{
    DispatchQueue.main.async(execute: {
        self.activityIndicator.stopAnimating()
    })
}

暂无
暂无

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

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