gpt4 book ai didi

ios - 设置委托(delegate)(用于协议(protocol))仅适用于 prepareForSegue?

转载 作者:行者123 更新时间:2023-12-01 18:11:14 25 4
gpt4 key购买 nike

我发现的大多数涉及实现协议(protocol)和委托(delegate)的信息都涉及执行此操作的步骤;

   DestinationViewController *destinationVC = [[destinationViewController alloc] init];
destinationVC.delegate = self;

但是由于我无法让它工作而经历了几个小时的挫折之后,我终于偶然发现了另一种在 prepareForSegue中分配destinationVC的方法。
    DestinationViewController *destinationVC = segue.destinationViewController;
destinationVC.delegate = self;

这实际上有效。我做错了什么?似乎使用第一种方法我的委托(delegate)从未设置为自我。

最佳答案

从 Storyboard 中实例化时,initWithCoder:调用methid,而不是init方法。

DestinationViewController *destinationVC = [[destinationViewController alloc] init];
destinationVC.delegate = self;

当你的 Controller 不是来自 Storyboard时你会怎么做:你从代码中初始化它。之后,您必须手动处理从源 VC 到目标 VC 的转换。
DestinationViewController *destinationVC = segue.destinationViewController;
destinationVC.delegate = self;

是当您的 Controller 在 Storyboard 中定义并且是转场的目的地时您的操作方式。
执行转场时, prepareForSegue:调用源 View Controller 的方法,您应该在其中配置您想要的目标:设置属性、委托(delegate)、传递数据、...

关于ios - 设置委托(delegate)(用于协议(protocol))仅适用于 prepareForSegue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30994501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com