我在故事板中有两个视图控制器。 VC1有三个按钮,VC2有一个图像视图。
单击VC1中的按钮A,然后VC2显示A的图像。 单击VC1中的按钮B,然后VC2显示B的图像。
VC2如何知道在VC1中点击了哪个按钮?
答案 0 :(得分:0)
在VC2中设置委托以将信息发送回原始VC。 Google“objective-c delegate”并对模型 - 视图 - 控制器范例进行了一些阅读。
答案 1 :(得分:0)
这很简单!!!
1)在VC2中创建.h文件中的NSString属性,然后在.m文件“NSStringObjofVC2”中合成 2)在VC1 .h文件中导入VC2 #import“VC2” 并创建像这样的对象
VC2 * vc2Obj;
3)在viewdidload方法中
vc2Obj = [[VC2 alloc] init];
4)在每个按钮上单击添加此
vc2Obj.NSStringObjofVC2 = @“differentImageNameforAll3Buttons.png”;
最后使用VC2中的图像
只需在UIImage中使用NSStringObjofVC2作为文件名
答案 2 :(得分:0)
你可以做到Segue:
提供从按钮A到VC2的连接,从按钮B到VC2,从按钮A到VC2l
分别输入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"];
}
}