快速编写委托参考的不同选项
Posted
技术标签:
【中文标题】快速编写委托参考的不同选项【英文标题】:Different options to write delegate reference swift 【发布时间】:2019-07-15 09:27:27 【问题描述】:我试图创建一个函数委托来将数据从MainViewController
传递到SecondViewController
。我设置了协议:
protocol PassDataDelegate: AnyObject
func passData(data: [String])
我在 SecondViewController 中添加了委托函数:
func passData(data: [String])
//Pass Data
我将委托设置为 MainViewController:
weak var delegate: PassDataDelegate?
这里点击按钮时调用委托函数:
@objc func buttonTapped()
guard let vcdelegate = delegate else return
vcdelegate.passData(data: data)
编写委托参考有两种选择:
选项 1
我在 MainViewController 中写了委托对 SecondViewController 的引用:
let secondViewController = SecondViewController()
self.delegate = secondViewController
它的工作原理和我的相位一样。
选项 2
我在 SecondViewController 中写:
let vc = MainViewController()
vc.delegate = self
问题是委托仍然为零,我不明白为什么。有什么提示吗?谢谢
【问题讨论】:
【参考方案1】:在选项 2 中
let vc = MainViewController()
您创建了一个新实例而不是实际呈现的实例,因此留下真正的委托 = nil
【讨论】:
谢谢!没想到以上是关于快速编写委托参考的不同选项的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 SSIS 快速加载选项从 Excel 源加载 Netezza 中的数据
在 StateObject 初始化之前应用程序委托中的 Firebase 初始化