Как вызвать функцию [сделать что-то] после UIAlertAction? - PullRequest
0 голосов
/ 11 мая 2019

Я создал класс, который позволяет мне настраивать UIAlertAction всякий раз, когда мне нужно.Проблема в том, что мне нужно что-то сделать, вызвать функцию, которая находится внутри другого класса, после того, как пользователь нажмет delete (опция, кроме отмены)

Что я пробовал:

let dAction = ActionButtonOptions(isReportButton: false, selectedPost: selectedPost!, numberMedia: numberMedia, forP3: true) 
self.present(dAction.action, animated: true, completion: {
       if dAction.hasDeleted {
                print("83908120938292180918309123 ", dAction.hasDeleted)
                self.nextGestureMethods()//these two things are teh things I need to do
                self.selectedPost?.interimMedia.remove(at: self.numberMedia-1)
            } else {
                print("837vgvgvgvgvgvgvgv908120938292180918309123", dAction.hasDeleted)
            }
})

Обновление : Я полагаю, что приведенный выше код не работает, потому что завершение выполняется после завершения представления, а не когда пользователь заканчивает взаимодействие с всплывающим окном.

внутри этого другого класса: если пользователь нажимает кнопку удаления, я превращаю переменную hasDeleted в true.Проблема в том, что код в завершении, кажется, просто переходит в остальное.

Как я могу выполнить то, что я собираюсь?

1 Ответ

2 голосов
/ 11 мая 2019

Внутри контроллера оповещений добавьте переменную

var callback:((Bool)->())?  

и когда действие происходит внутри обработчика удаления, сделайте

callback?(true/false)

и слушать

dAction.callback = { [weak self] (value) in 
   print(value)
}
...