Swift容器传递数据

时间:2015-11-29 14:54:38

标签: swift uiviewcontroller uibutton containers

我在swift中遇到容器问题

我需要知道控制器中的用户点击按钮,例如照片:enter image description here

如何知道在Container中点击按钮的时间?

1 个答案:

答案 0 :(得分:2)

要在ContainedViewController中调用方法,首先需要获取对它的引用。一种简单的方法是单击文档大纲视图中的嵌入segue ,并为此segue指定一个标识符,例如"embedContainedVC"

Document Outline View

Name embedded segue

然后,您可以在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()
    }
}

<强> ContainedViewController.swift:

import UIKit

class ContainedViewController: UIViewController {

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

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