Я использую очень простой настройку UIAlertController с двумя кнопками.Делегаты кнопок UIAlertController не запускаются (в Modally Segue)
var alert = UIAlertController(title: "Leave player?",
message: "You will not be able to return to this routine after!",
preferredStyle: .Alert)
let cancelAction: UIAlertAction = UIAlertAction(title: "Continue", style: .Cancel) { action -> Void in
println("here")
}
let deleteAction: UIAlertAction = UIAlertAction(title: "Leave", style: .Default) { action -> Void in
println("here")
}
alert.addAction(cancelAction)
alert.addAction(deleteAction)
self.presentViewController(alert, animated: true, completion: nil)
Этот код работает с одним и тем же представлением с помощью push-сегмента из другой части программы. Где находится структура:
Теперь всплывающие окна AlertController и кнопка возвращают простой текстовый вывод.
Но в следующей ситуации всплывающее окно AlertController, но нажатие кнопки ничего не возвращает, моя точка останова никогда не срабатывает, или просто проверка консоли для вывода текста ничего не возвращает.
(MainView) -modal> (ThisView)
Конечно, я постарался установить segue во второй ситуации на толкающий сегмент, но ничего не изменил. Чтобы не ошибиться, AlertController всплывает, но кнопки вообще не реагируют. Могу ли я сделать альтернативного делегата?
Теперь это просто стоило мне целый день получить что-то простое в работе. Я пробовал большинство трюков, таких как задержки или асинхронный блок.
Теперь я отчасти стараюсь. Поэтому, пожалуйста, кто-то просветить меня, что я делаю не так :)
UPDATE
Встраивание MainView в навигационном контроллере и изменяя SEGUE к Нажимаем Segue, делает нажатие на кнопку реагирует .. Добавление контроллера навигации для исправления этого - это то, что я мог бы рассмотреть, но я хотел бы сохранить Modal segue для его анимации. Любые идеи?
Временное решение
Сейчас я буду использовать нажимной SEGUE и контроллер навигации, чтобы решить эту проблему. Это не оптимально, так как это представление должно вести себя как всплывающее окно, а не push, например segue, но оно работает.
Не могли бы вы указать, где будет объявлен код? В MainView или в этом представлении? – aout
Можете ли вы опубликовать еще несколько кода/раскадровку, чтобы лучше понять, что происходит, когда отображается это предупреждение? – keithbhunter
Код объявлен в этом представлении, который находится всего в 1 секунде от mainView. Это представление также может быть достигнуто из другой части программы, которая имеет х количество раздвижных сегментов между ними. В этом представлении есть также таймер, тикающий каждую секунду, но я отключил это, и большинство вещей происходит там, поэтому он ничего не должен делать. Также я запустил Alert из разных частей программы, viewdidload, viewdidappear и в одном из циклов (которые отключены, если таймер отключен), вы можете отключить его) Так что моя мысль имеет дело с модальным segue construction .. –