我在情节提要中有两个视图控制器。VC1 有三个按钮,VC2 有一个图像视图。
当点击VC1中的按钮A时,VC2显示A的图像。当单击VC1中的按钮B时,VC2显示B的图像。
VC2 如何知道在 VC1 中点击了哪个按钮?
在 VC2 中设置委托以将信息发送回原始 VC。谷歌“objective-c delegate”并阅读模型-视图-控制器范式。
这很简单!!!
1)在 VC2 中在 .h 文件中创建 NSString 属性,然后在 .m 文件“NSStringObjofVC2”中合成该属性 2)在 VC1 .h 文件中导入 VC2 #import“VC2”并像这样创建对象
VC2 *vc2Obj;
3) 在 viewdidload 方法中
vc2Obj = [[VC2 alloc] 初始化];
4)在每个按钮上单击添加这个
vc2Obj.NSStringObjofVC2 = @"differentImageNameforAll3Buttons.png";
最后在VC2中使用图像
只需在 UIImage 中使用 NSStringObjofVC2 作为文件名
你可以做到这一点:
提供从按钮 A 到 VC2、从按钮 B 到 VC2、从按钮 A 到 VC2l 的 segue 连接
分别输入segue标识符SegueA、SegueB、SegueC。
在VC1中编写如下方法:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
ImageViewController *vc2=(ImageViewController*)[ segue destinationViewController];
if([[segue identifier] isEqualToString:@"SegueA"]){
vc2.imageView.image =[UIImage imageNamed:@"a.png"];
}else
if([[segue identifier] isEqualToString:@"SegueB"]){
vc2.imageView.image =[UIImage imageNamed:@"b.png"];
}else
if([[segue identifier] isEqualToString:@"SegueC"]){
vc2.imageView.image =[UIImage imageNamed:@"c.png"];
}
}