ios - Is it a good way to pass data to custom view then execute the function?
问题描述
解决方案
尝试这个
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
}
}
推荐阅读
- javascript - 满足条件时停止的循环,根据窗口滚动设置状态
- r - 如何在不返回 NA 的情况下将数据帧 R 列从 DD/MM/YYYY 更改为 YYYY/MM/DD
- javascript - 完整的日历 refetchResources 在版本 5.5.1 中没有工作
- xml - XSLT:获取结果元素
- installation - “在尝试安装 Agda 2.6.1.2 时无法加载模块‘Control.Monad.Trans.Maybe’”
- python - 如何在 Python 中更新表方案,仅使用 Python(无 CLI)
- symfony - 学说不会为新实体产生迁移
- c# - 如何让 setup.exe 中的发布者知道 UAC 已经识别它?
- .net-core - Dotnet Core 3.1 应用程序不会从 Visual Studio Code 运行
- java - Spring Integration SSL Connection 上的“未找到受信任的证书”