0

我正在寻找传递取决于按钮选择的图像。我的 FirstController 上有 Button1、Button2、Button3。

我希望当我按下 Button1 时,在 SecondController 上显示的名为 photo.png 的图像已插入到 Imageview 中。如果我按下按钮 2 也是一样,名为 photo2.png 的图像会显示在同一个 Imageview 上。我真的不知道该怎么做我想做的事。我想将图像的传递插入此代码:

- (IBAction)Button1:(id)sender {
    SecondController *dvController = [[SecondController alloc] 
initWithNibName:@"SecondController" bundle:[NSBundle mainBundle]];
    dvController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:dvController animated:YES];
    [dvController release];
    dvController = nil;
}
4

3 回答 3

0

SecondController应该有一个property类似的东西UIImage* previousViewImage,你可以从发件人那里传递dvController.previousViewImage= [(UIButton*)sender imageForState:UIControlStateNormal].

于 2012-09-23T13:51:14.673 回答
0

一种方法是拥有一个图像名称数组,然后使用按钮的标签作为索引从数组中获取图像名称。

您首先将一个按钮和一个 IBAction 链接到它。然后复制并粘贴按钮。这为您提供了许多按钮,但只有一段代码。为每个按钮设置不同的标记属性,代码使用 [sender tag] 作为数组的索引。

然后 dvController 有一个 UIImage 属性,该属性在呈现之前从此数组中设置。在 dvController 的 viewWillAppear 中,UIImageView 然后设置为传递过来的 UIImage。

于 2012-09-23T13:55:28.460 回答
0

嘿汤姆约翰你可以做的是在你的 SecondController.h 中声明并合成一个字符串,所以当第一个按钮被按下时,你可以用你想在第二个视图控制器中设置的图像的名称来设置字符串的值在您的方法中的图像视图为

 - (IBAction)Button1:(id)sender {
SecondController *dvController = [[SecondController alloc] 

initWithNibName:@"SecondController" bundle:[NSBundle mainBundle]]; dvController.imageName=@"photo", // imageName 是您将在第二个视图控制器中声明的字符串 dvController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [自我presentModalViewController:dvController动画:YES];[dvController 发布]; dvController = nil; }

在第二个视图控制器的视图中确实加载了你可以这样做

imageView.image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]];//  imageview is the name of your imageview outlet .

同样对于第二个按钮,您可以设置dvController.imageName=@"photo2"// put the name without png. 希望这可以帮助。

于 2012-09-24T09:29:05.477 回答