如何将数据从TableViewCell传递到ContainerView?

时间:2019-05-28 07:25:57

标签: ios swift xcode

我是使用Swift的新手,需要帮助将数据从TableViewCell传递到ContainerView来更改Labels的某些文本。

我当前的状态是将数据从TabelViewCell传递到ViewController,以将带有标签的Label(IBOutlet)的文本更改为第二个ViewController。

但是我不知道如何使用自己的ViewController将数据从Cell传递到ContainerView。

这是我的项目的照片

在这里您可以找到我的项目和问题的图片

Here you can find the picture of my project and problem

我只想将数据从“ View_1”的TableViewCell传递到“ View_2”,并在我的ContainerView(UIView)的ViewController“ View_In_Container”中更改标签“ Change_Text_1”的文本。

也许你们可以帮助我解决我的问题。谢谢。

2 个答案:

答案 0 :(得分:0)

ContainerView中添加View_2时,情节提要中将添加一个子视图控制器(View_in_container)和一个segue到子视图控制器。将identifier添加到segue并从View_2 prepareForSegue方法传递数据。从View_2View_in_container的搜索是在加载View_2时执行的

class View1: UIViewController {
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "toView2", let view2 = segue.destination as? View2 {
            view2.name = "name"//Pass data from tableview data source array
        }
    }
}
class View2: UIViewController {
    var name:String?
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "toChildVC", let viewInContainer = segue.destination as? ViewInContainer {
            viewInContainer.name = self.name
        }
    }
}
class ViewInContainer: UIViewController {
    var name:String?
    override func viewDidLoad() {
        super.viewDidLoad()
        label1.text = name
    }
}

View_2View_in_container中选择序列,并添加标识符toChildVC

enter image description here

enter image description here

答案 1 :(得分:0)

如果您要使用segue到其他视图控制器,则可以在那里传递数据,首先将标识符添加到segue中,然后在prepare(for segue:...中可以访问segue.destination as? View_2,然后对容器执行相同的操作并传递值