【问题标题】:How to set delegate of modal child view controller to parent?如何将模态子视图控制器的委托设置为父级?
【发布时间】:2017-09-08 11:16:20
【问题描述】:

关于协议委托等,我已经正确设置了所有内容。我唯一的问题是我无法将 CCC 的委托设置为 AAA。此代码在 AAA.swift 中:

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == "AAAtoBBBSegue"{

                let destination = segue.destination as! UINavigationController
                let nextViewController = destination.viewControllers[0] as! CCC

                nextViewController.delegate = self

            }
        }

将 CCC 代表设置为 AAA 是我唯一的问题!这非常令人沮丧,因为我必须先设置它的委托,然后才能将任何数据从 CCC 传递到 AAA。 http://i.imgur.com/AlOwue9.png

【问题讨论】:

  • 那么,为什么不能设置委托?
  • 在您的屏幕截图中,CCC not destination.viewControllers[0] .. 您需要在 BBB 中设置委托并将其“传递”给 CCC跨度>
  • 我只是放了一张照片。我认为这不起作用,因为它们之间存在 BBB。
  • 好吧,Don Mag 我会设置 l BBB.delegate = self 然后在 BBB 内部设置 CCC.delegate = self 吗?
  • 几乎...BBB.delegate = self 在此为转场做准备...然后,当您将 BBB 转为 CCC 时,您将:CCC.delegate = self.delegate

标签: ios swift delegates protocols


【解决方案1】:

在您的设计中,您试图在模态显示的导航控制器中设置 second 视图控制器的委托。

你想“通过自己”到达合适的 VC。

所以:

  • BBB中添加一个委托变量
  • 准备从 AAABBB 的转场,设置 BBB.delegate = self(自己是 AAA
  • BBB中,当你切换到CCC时,设置CCC.delegate = self.delegate(这里自己是BBBself.delegateAAA)

【讨论】:

    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多