Oma*_*mar 21 objective-c uiviewcontroller ios
我在XCode中设置了一个故事板,并有一个MainViewController.在MainViewController中,我添加了一个ContainerView,它自然地与另一个VIewController创建了一个Segue.
在我的MainViewController.m文件中,我已经设置了数据,并希望将这些数据链接到ContainerView中的标签,但是我想我可以单击文件所有者并执行此操作但当然我不能,因为它们现在是2个不同的viewcontrollers .
有人可以帮助我,因为我正在努力解决这个问题.必须有一个简单的方法,但我不能破解它!
谢谢
rde*_*mar 28
您可以像使用任何其他两个控制器一样使用prepareForSegue - 在实例化两个控制器之后但在viewDidLoad运行之前调用该方法.另一种方法是使用父控制器的childViewControllers属性(嵌入式控制器是子控件).所以,孩子将是self.childViewControllers [0].
编辑后:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"EmbedSegue"]) {
MyEmbeddedController *embed = segue.destinationViewController;
embed.labelString = self.stringToPass;
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您必须将名称更改为您拥有的名称.确保您在IB中为segue指定的名称与您在if语句中检查的名称相匹配.在此示例中,labelString是您在嵌入式控制器中设置的字符串属性.然后在该控制器的viewDidLoad方法中,您可以使用该字符串设置标签的值.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let embeddedVC = segue.destinationViewController as? MyEmbeddedController where segue.identifier == "EmbedSegue" {
embeddedVC.labelString = self.stringToPass
}
}
Run Code Online (Sandbox Code Playgroud)
"EmbedSegue" 必须使用您在Interface Builder中设置的segue标识符.
| 归档时间: |
|
| 查看次数: |
13785 次 |
| 最近记录: |