Xcode, быстрый: предупреждение не отклоняется

class AVC: UIViewController {
    override func viewDidLoad(){
        let alert = UIAlertController(title: nil, message: "Please wait...", preferredStyle: .alert)

        let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50))
        loadingIndicator.hidesWhenStopped = true
        loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
        loadingIndicator.startAnimating();

        alert.view.addSubview(loadingIndicator)
        viewController.present(alert, animated: true, completion: nil)
        self.a()
    }

    func a(){
        ZZZ.remove(for: self)
    }
}

class ZZZ {

    func remove(for viewController: UIViewController){
        viewController.dismiss(animated: false, completion: nil)
        //Why won't the alert created in AVC be dismissed from here?
    }
}

Привет, у меня есть контроллер AVC вида, который создает предупреждение & amp; индикатор загрузки. Я хочу отклонить это предупреждение из другого быстрого файла под названием ZZZ, используя функцию удаления ZZZ. Тем не менее, предупреждение не отклоняется от ZZZ, хотя мой код явно просит его. Как это исправить? Благодаря

0
задан Helosy 13 August 2018 в 10:52
поделиться

2 ответа

Здесь общий пользовательский класс для отображения предупреждения

class Shared: NSObject {
    func waitAlert() -> UIAlertController {
        let alert = UIAlertController(title: nil, message: "Please wait...", preferredStyle: .alert)
        alert.view.tintColor = UIColor.black
        let loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50)) as UIActivityIndicatorView
        loadingIndicator.hidesWhenStopped = true
        loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
        loadingIndicator.startAnimating();
        alert.view.addSubview(loadingIndicator)
        return alert
    }
}

Итак, в вашем диспетчере просмотра вы можете показывать предупреждение

let alert = Shared().waitAlert()
present(alert, animated: true, completion: {
   alert.dismiss(animated: true, completion: {
    //do your code
   })
})
0
ответ дан Azat Ibrakov 15 August 2018 в 14:04
поделиться

Вы в настоящее время отклоняете viewcontroller, а не alert. Вызовите

alert.dismiss(animated: false, completion: nil)


func a() {
        ZZZ().remove(for: alert)
}
0
ответ дан Lal Krishna 15 August 2018 в 14:04
поделиться

Другие вопросы по тегам:

Похожие вопросы: