Ios 将委托分配给类的实例

Ios 将委托分配给类的实例,ios,swift,delegates,Ios,Swift,Delegates,大家好,希望你们做得很好。我怀疑,当我尝试使用自定义委托函数时,如果不使用prepare segue或present view controller,则不会调用回调函数。如果不使用这两个概念,是否可能实现这一点?这两个概念仅用于直接处理前端和后端控制器。简单地说,我有3个ViewController,当我在第3个view controller中执行某些操作时,我想更新我的第一个ViewController标签。是否可以通过代理?请帮助我,我挣扎了两天,我找不到答案,所以请指导我 这是我的密码 在

大家好,希望你们做得很好。我怀疑,当我尝试使用自定义委托函数时,如果不使用prepare segue或present view controller,则不会调用回调函数。如果不使用这两个概念,是否可能实现这一点?这两个概念仅用于直接处理前端和后端控制器。简单地说,我有3个ViewController,当我在第3个view controller中执行某些操作时,我想更新我的第一个ViewController标签。是否可以通过代理?请帮助我,我挣扎了两天,我找不到答案,所以请指导我

这是我的密码 在我的第三视图控制器中

protocol ThirdViewControllerDelegate: class {    
    func updateLabel(title: String)
}
然后我创建了一个属性
弱变量委托:ThirdViewControllerDelegate?

我已经在中指定了一个值

@IBAction func thirdControllerButtonTapped(_ sender: UIButton) {        
    delegate?.updateLabel(title: "iOS_Developer")

    dismiss(animated: true, completion: nil)
}
我在我的第一个视图和控制器中采用了这个委托

lazy var thirdController = ThirdViewController()
thirdController.delegate = self

func updateLabel(title: String) {
    print("Your updated Label is \(title)")
}
但是这个函数没有被调用。这里我如何设置代理引用,请帮助我

override func prepare(for segue: UIStoryboardSegue, 
      sender: Any?) {
    if let vc = segue.destination as? ThirdViewController {
        vc.delegate = self
    }
}
或:

下面是一个图表,希望显示视图控制器如何通过代理相互通信:


在第一个视图控制器中,您在何处设置代理?如何导航到
thirdController
?您正在var声明中创建一个新的ThirdViewController(),而不是正在访问的ThirdViewController(),可能是通过脚本访问的。在prepareforsgue:函数中,获取目标视图控制器,然后设置委托。我正在使用@DávidPásztor self.present(FirstViewController,动画:true,完成:nil)演示控制器。我不想使用prepare segue或present view controller。是否可以通过我创建delegate@JonJCan的类的实例实现使用?您可以共享视图控制器的相关代码,其中显示设置委托、使用委托以及推送和弹出操作?您可以将此作为示例共享吗。我无法理解在第三视图控制器中,我在启动第一个控制器后向第一个控制器展示的是一个值,但在这里,我如何引用vc.delegate=self,因为我在第三个视图控制器中有它。我添加了一个显示代表通信的图表。感谢您的回复@JonJ。我可以理解,我们可以通过推送或使用导航显示viewController来分配代理,但我想在这里访问从第三视图控制器到第一视图控制器的数据。那个么,我如何在最后一个视图控制器中为第一个控制器设置委托呢?我正在使用当前方法呈现视图控制器,所以请帮助我,我是ios开发的新控制器。
let vc = ThirdViewController()
vc.delegate = self
self.navigationController?.pushViewController(vc, animated: true)