【问题标题】:how to implement protocol as I did in android如何像我在android中那样实现协议
【发布时间】:2017-01-31 07:54:25
【问题描述】:
DialogManager.showDialog(this, message, new OnTwoButtonClickListener() {
               @Override
               public void onButtonClick1() {}                                        

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

如何在 swift 3 中创建相同的功能。

据我所知,我无法从协议创建新实例。

我知道委托,我知道我可以这样做,但我正在寻找另一种解决方案。

我希望我的对话框用法如上所述。

谁能建议我最好的解决方案?

【问题讨论】:

  • 您是否尝试自己创建对话框,而不是在 Android 中使用 AlertDialog 或在 iOS 中使用 UIAlertController
  • 我自己创建对话框我没有使用任何原生控件
  • @Sweeper 的主要思想是如何快速使用协议而不是如何创建警报对话框

标签: java android ios swift3 protocols


【解决方案1】:

尝试使用 闭包

showDialog 会这样定义:

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

要触发闭包,请执行以下操作:

button1Click()
button2Click()

要拨打showDialog,请执行以下操作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    相关资源
    最近更新 更多