I'm trying to create a function for showing and dismissing a ProgressDialog in Swift 3. But in this code the dialog is not dismissing from the view controller.
func showLoadingDialog(show : Bool) {
if show {
self.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()
self.alert.view.addSubview(loadingIndicator)
self.present(self.alert, animated: true, completion: nil)
}else{
self.dismiss(animated: false, completion: nil)
}
}
I have also tried the following methods for dismiss this dialog, but none of them worked:
self.alert.view.removeFromSuperview()
self.alert.view.alpha = 0
self.presentingViewController?.dismiss(animated: true, completion: nil)
Please help me. If you guys have any alternate solution, please make a suggestion.
//Try this
func showLoadingDialog(show : Bool) {
if show {
if self.alert == nil{
self.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()
self.alert.view.addSubview(loadingIndicator)
}
if !self.alert.isBeingPresented {
self.present(self.alert, animated: true, completion: nil)
}
}else{
self.alert.dismiss(animated: false, completion: nil)
}
}
In func showLoadingDialog
,
try to use
self.alert.dismiss(animated: false, completion: nil)
instead of
self.dismiss(animated: false, completion: nil)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With