0

我在情节提要中有两个视图控制器。VC1 有三个按钮,VC2 有一个图像视图。

当点击VC1中的按钮A时,VC2显示A的图像。当单击VC1中的按钮B时,VC2显示B的图像。

VC2 如何知道在 VC1 中点击了哪个按钮?

4

3 回答 3

0

在 VC2 中设置委托以将信息发送回原始 VC。谷歌“objective-c delegate”并阅读模型-视图-控制器范式。

于 2013-02-05T18:08:37.737 回答
0

这很简单!!!

1)在 VC2 中在 .h 文件中创建 NSString 属性,然后在 .m 文件“NSStringObjofVC2”中合成该属性 2)在 VC1 .h 文件中导入 VC2 #import“VC2”并像这样创建对象

VC2 *vc2Obj;

3) 在 vi​​ewdidload 方法中

vc2Obj = [[VC2 alloc] 初始化];

4)在每个按钮上单击添加这个

vc2Obj.NSStringObjofVC2 = @"differentImageNameforAll3Buttons.png";

最后在VC2中使用图像

只需在 UIImage 中使用 NSStringObjofVC2 作为文件名

于 2013-02-05T18:42:51.760 回答
0

你可以做到这一点:

  1. 添加导航控制器:选择 VC1,然后选择 Editor> Embedded In> Navigation Controller
  2. 提供从按钮 A 到 VC2、从按钮 B 到 VC2、从按钮 A 到 VC2l 的 segue 连接

  3. 分别输入segue标识符SegueA、SegueB、SegueC。

  4. 在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"];

}

}

于 2013-02-05T18:47:34.217 回答