2014-09-04 2 views
2

Я пытаюсь использовать новый UIAlertController, представленный в iOS 8. Все отлично работает, за исключением того факта, что UIAlertAction всегда заканчивает отмену контроллера предупреждения в своем обратном вызове. Ниже мой код:UIAlertAction отклоняет UIAlertController в своем обратном вызове

let alert = UIAlertController(title: "New Group", message: "Enter Group name", preferredStyle: UIAlertControllerStyle.Alert); 
alert.addTextFieldWithConfigurationHandler({ [weak self] (nameField: UITextField!) in 
    nameField.becomeFirstResponder(); 
    nameField.delegate = self; 
    return; 
}) 
alert.addAction(UIAlertAction(title: "Done", style: .Default, handler: { action in 
    println("Done Entering"); 
})); 
alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)); 
self.presentViewController(alert, animated: true, completion: nil); 

Теперь, когда я нажимаю «Готово» кнопки управления вводит метод обратного вызова, а затем предупреждение уволен, даже если у меня нет никаких заявлений об отказе в боевой готовности. Это поведение по умолчанию? Если да, как я могу убедиться, что в некоторых случаях предупреждение остается на экране (в зависимости от моих условий)? Я что-то упустил?

Я был бы очень признателен за любую помощь в этом отношении.

ответ

7

Да, кнопки оповещения всегда увольняют предупреждение, и в противном случае их невозможно настроить. Если вы хотите этого поведения, вам придется написать свое собственное предупреждение. Я написал SDCAlertView, который очень похож на обычное оповещение, но имеет некоторые дополнительные функции, включая предотвращение отклонения предупреждения при нажатии кнопки.

Однако он не использует API UIAlertController, но он выглядит немного по-другому (большинство пользователей не заметят) на iOS 8, чем предупреждение UIAlertController.

EDIT: У этого пользователя есть поддержка API-интерфейсов UIAlertController.

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