2017-01-31 14 views
-3
DialogManager.showDialog(this, message, new OnTwoButtonClickListener() { 
       @Override 
       public void onButtonClick1() {}           

       @Override 
       public void onButtonClick2() {}      
      }); 

Как я мог бы создать такую ​​же функциональность в быстрой 3.как реализовать протокол, как я сделал в андроида

Насколько я знаю, что я не могу создать новый экземпляр из протокола.

Я знаю о делегировании, и я знаю, что могу сделать это, но я ищу другое решение.

Я хочу, чтобы мое использование диалога было таким, как указано выше.

Может ли кто-нибудь предложить мне лучшее решение?

+0

Вы пытаетесь создать диалоги самостоятельно, вместо использования 'AlertDialog' в Android или' UIAlertController' в iOS? – Sweeper

+0

Я создаю диалог самостоятельно Я не использовал никаких встроенных элементов управления – pmb

+0

@Sweeper - основная идея, как использовать протоколы в swift, а не о том, как создавать alertdialog – pmb

ответ

1

Попробуйте использовать Затворы.

showDialog будет определяться следующим образом:

func showDialog(message: String, 
    button1Click: @escaping() -> Void, 
    button2Click: @escaping() -> Void) 

Для запуска затворов, сделайте следующее:

button1Click() 
button2Click() 

Для вызова showDialog, сделайте следующее:

showDialog(message: "Hello", 
      button1Click: { // code }, 
      button2Click: { // code })