2016-11-10 1 views
3

есть ли в любом случае ждать, пока пользователь нажмет кнопку, которая отключит alertController в swift 3, используя DispatchQueue или что-то еще?Возможно ли заблокировать выполнение моего кода до тех пор, пока UIAlertController не будет уволен?

+1

Взгляните на http://stackoverflow.com/questions/37801436/how-do-i-write-dispatch-after-gcd-in-swift-3 –

+0

Да, я знаю об этом, но я имею в виду, после того, как я представил alertcontroller, есть ли все равно ждать (чтобы мой код ничего не выполнял) до тех пор, пока пользователь не отключит предупреждение? – Anthony

+1

Если вы хотите остановить выполнение кода до оповещения пользователя об увольнении, добавьте свой код выполнения в обработчик обработчика 'UIAlertAction'. –

ответ

1

Вы имеете в виду что-то вроде этого?

alertController.displayAndWaitUntilDismissed() 
// This line is only reached after the alert controller is dismissed 
print("Alert controller dismissed.") 

Теоретически, да, вы можете использовать семафор отправки для блокировки до тех пор, пока предупреждение не будет отклонено. Но это плохая идея - я даже не могу думать о сценарии, где это было бы приемлемо. Просто согласитесь, что вам необходимо обрабатывать его асинхронно, выполнив требуемый код в действии контроллера предупреждений.

0

Просто переместите весь код, который вы хотите выполнить после того, как предупреждение будет отклонено отдельным методом. Когда вы добавляете UIAlertActions, сделайте так, чтобы этот метод вызывал все действия: handler. Таким образом, любая кнопка, которую пользователь нажимает, ваш код всегда будет выполнен!

Смежные вопросы