我是使用Swift的新手,需要帮助将数据从TableViewCell传递到ContainerView来更改Labels的某些文本。
我当前的状态是将数据从TabelViewCell传递到ViewController,以将带有标签的Label(IBOutlet)的文本更改为第二个ViewController。
但是我不知道如何使用自己的ViewController将数据从Cell传递到ContainerView。
这是我的项目的照片
在这里您可以找到我的项目和问题的图片
我只想将数据从“ View_1”的TableViewCell传递到“ View_2”,并在我的ContainerView(UIView)的ViewController“ View_In_Container”中更改标签“ Change_Text_1”的文本。
也许你们可以帮助我解决我的问题。谢谢。
答案 0 :(得分:0)
在ContainerView
中添加View_2
时,情节提要中将添加一个子视图控制器(View_in_container
)和一个segue
到子视图控制器。将identifier
添加到segue
并从View_2
prepareForSegue
方法传递数据。从View_2
到View_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_2
到View_in_container
中选择序列,并添加标识符toChildVC
答案 1 :(得分:0)
如果您要使用segue到其他视图控制器,则可以在那里传递数据,首先将标识符添加到segue中,然后在prepare(for segue:...
中可以访问segue.destination as? View_2
,然后对容器执行相同的操作并传递值