这是我所拥有的:
我有一个带有图像数组的根视图控制器。我有一个 detailViewController,它只是有一个用于显示全屏图像的全屏 UIImageView。我还定义了一个 segue 来呈现 detailViewController。当用户在 rootViewController 中选择图像时,会以编程方式调用此 segue,如下所示:
- (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index
{
[self performSegueWithIdentifier:@"fullScreenSegue" sender:self];
}
问题是 detailViewController 有一个 image 属性,它设置为它显示的 UIImageView 的图像,我需要一种方法将图像传递给它以显示。我该怎么做呢?根据苹果文档,我应该在调用控制器中实现 prepareForSegue 方法,但那时我不再有权访问上面的索引。图像位于根视图控制器的数组中,我需要该索引来知道将哪个图像传递给 detailViewController。我还将 detailViewController 设置为具有将调用控制器设置为委托的协议,然后在 init() 方法中调用“setImage”方法,但这似乎不起作用,而且无论如何似乎都是一个疯狂的实现。 .
我考虑过在 rootViewController 中声明一个属性,例如 @property int selectedIndex,然后在上述方法中设置该属性,然后在 prepareForSegue 方法中执行以下操作:
detailViewController.imageForDisplay = [图像 objectAtIndex:selectedIndex];
这可能会奏效,但这种方法让我错了......
在此先感谢您的帮助!