Swift 容器传递数据

Swift container pass data

我在 swift

中遇到容器问题

我需要知道当用户点击 Controller 中的按钮时喜欢照片:

如何知道容器中的按钮何时被点击?

为了调用 ContainedViewController 中的方法,您首先需要获得对它的引用。一个简单的方法是在 Document Outline 视图中点击 Embed segue 并给这个 segue 一个标识符,例如 "embedContainedVC".


然后您可以在 prepareForSegue 中使用该标识符来获取对嵌入式视图控制器的引用,并在单击按钮时使用它调用该视图控制器上的方法。

ViewController.swift:

class ViewController: UIViewController {

    @IBOutlet weak var container: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    var containedVC: ContainedViewController!

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "embedContainedVC" {
            containedVC = segue.destinationViewController as! ContainedViewController
        }
    }

    @IBAction func doClick(sender: AnyObject) {
        print("call contained VC")
        containedVC.clickedClick()
    }
}

包含ViewController.swift:

import UIKit

class ContainedViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func clickedClick() {
        print("click")
    }
}