首页 > 解决方案 > Is it a good way to pass data to custom view then execute the function?

问题描述

标签: iosswiftswift-protocols

解决方案


尝试这个

    func loadFromNib() -> SignSubmitBTN {


 let bundle  = Bundle.main.loadNibNamed("SignSubmitBTN", owner: self, options: nil)?.first as! SignSubmitBTN
                return bundle
            }

在您的 viewcontroller 调用中,如下所示:

    let customObj = loadFromNib()
    customObj.dataToGet = "Data to pass"
customObj.delegate = self
    EmailTF.inputAccessoryView = customObj

如果您想从自定义类传递数据,您需要按照@Fogmeister 的建议使用委托协议。

如果你想要委托选项

    public protocol menuOpen:  class {
        func openMenuAction(selectedValue : String)
    }
    class SignSubmitBTN: UIView {
    open var delegate:menuOpen?
 var dataToGet = ""

    @IBAction func submitAction(_ sender: Any) {

self.delegate.openMenuAction("test")

    }
    }

然后在你的VC中添加委托方法

class SignUpViewController: UIViewController,menuOpen{ 

    func openMenuAction(selectedValue : String) {
    //get your selected value here, you would better pass parameter in this method
    }
}

推荐阅读