快速编写委托参考的不同选项

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

【讨论】:

谢谢!没想到

以上是关于快速编写委托参考的不同选项的主要内容,如果未能解决你的问题,请参考以下文章

iOS:在应用程序委托中加载应用程序后选择一个选项卡

无法使用 SSIS 快速加载选项从 Excel 源加载 Netezza 中的数据

在 StateObject 初始化之前应用程序委托中的 Firebase 初始化

如何在快速在 textFieldDidBeginEditing 委托上呈现另一个视图控制器时隐藏键盘?

.NET 中的快速向量数学 - 都有哪些选项?

mysql:具有授予选项和通配符的数据库特定用户权限委托