所以我见过一些这样的例子,并试图实现它们,但似乎无法让它工作。我有两个VC(在我的照片中标记为VC1)转到第二个视图控制器(照片中的VC2)。 VC2有一个容器视图。我将数据从VC1上的属性传递给VC2上的属性,然后我需要将该数据从V2传递给容器视图上的属性。基于使用某些NSLogs,看起来为从我的容器视图进入VC2的嵌入式segue准备的segue在VC2上的属性由VC1传递的数据设置之前触发,这意味着没有数据传递给我的容器视图。任何方式来解决这个问题?提前致谢。从父视图传递数据到容器视图
这是我在prepareForSegue VC2:
我的容器视图是WineryPhotosCVC。我正在尝试将WineryPhotosCVC的酿酒厂物业与VC2s酒庄物业联系起来。在prepareForSegue到我的容器视图被调用之前,VC1并未由VC1设置VC2s酒庄属性。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqual: @"containerViewSegue"]) {
WineryPhotosCVC *wineryPhotosCVC = segue.destinationViewController;
wineryPhotosCVC.winery = _winery;
}
}
我尝试添加对我的容器视图的引用,并将其添加到viewWillAppear,但数据仍然不会通过。这是我在VC2的viewWillAppear中的代码:'wineryPhotosCVC.winery = self.winery;'你可以通过在容器视图中设置一个函数来进一步解释你的意思吗?谢谢 – dcotter
这应该工作。设置断点并在设置时检查酒庄。另外,即使你设置了它,你想在容器视图中使用它做什么?查看容器视图的委托方法,看看它是否有可用的酒厂数据。 – jarryd
GOT IT!谢谢您的帮助。问题是我对容器视图控制器的引用。我最后通过'WineryPhotosCVC * wineryPhotosCVC = self.childViewControllers [0];'得到了参考。然后我做了'wineryPhotosCVC.winery = self.winery;'酒庄属性有一个id,我需要传递给在我的容器视图中进行的网络调用以从Foursquare抓取照片。我感谢你的帮助。 – dcotter