У меня проблема с оповещением. Я использую UIAlertController. Когда пользователь нажимает кнопку отправки, необходимо сразу же вывести предупреждение «Пожалуйста, подождите ...», пока приложение выполняет некоторые операции. Предупреждение прекращается после завершения операций. У меня долгая задержка (несколько секунд) до того, как предупреждение будет представлено, даже если предупреждение должно быть представлено еще до того, как я начну выполнять операции. Я попытался отправить асинхронно и попытался использовать замыкания, но ничего не работает. До появления предупреждения осталось несколько секунд.
Как сделать так, чтобы оповещение появлялось сразу после нажатия кнопки?
override func viewDidLoad() {
super.viewDidLoad()
submitButton.addTarget(self,action:#selector(buttonAction),for:.touchUpInside)
}
@objc func buttonAction(){
waiting()
doOperations()
}
func waiting(){
DispatchQueue.main.async{
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)
self.present(alert, animated: false, completion: nil)
}
}
func doOperations(){
...
}
func dismissWaiting{
...
//dismiss alert
}