根据细胞图像iphone显示图像

时间:2011-09-06 04:42:45

标签: iphone objective-c ios

我的tableViewCell在cellForRowAtIndexPath方法中定义了像

一样的单元格图像
switch (row) {

    case 0:

        rowImage=[UIImage imageNamed:@"euro.png"];
        cell.imageView.image=rowImage;
        break;

    case 1:

        rowImage=[UIImage imageNamed:@"us.png"];
        cell.imageView.image=rowImage;   
        break;

现在在下一个视图中,无论用户选择哪个单元格,我想在该视图上显示相应的图像,这是正常的xib文件。图像不应该覆盖整个xib文件,而是覆盖它的一个小地方

我该如何实现呢。

由于

2 个答案:

答案 0 :(得分:1)

你可以通过创建一个数组来实现它,该数组按照你在第0行的表中添加的相同顺序保存图像名称到你总共添加了多少。现在在didSelectRowAtIndexPath方法中传递正被选择到数组索引的行,如下所示:

  NSString *imgName =[imagesArray objectAtIndex:indexPath.row];

现在您已经选择了图像名称。您现在可以将此名称传递给下一个要显示图像的viewcontroller。为此,只需在下一个带有字符串参数的viewcontroller类中创建一个方法。将此图像名称字符串传递给该方法。例如,

NSString *localImgName = [getImageName imgName];

其中getImageName是另一个视图控制器中的方法。现在,您可以在localImgName变量中使用获取的imageName,并使用它将图像设置为UIImageView。 希望这可以帮助。我已经用程序化的方式解释过..

答案 1 :(得分:1)

在代表的帮助下完成此操作。 在这种方法中,

switch (row) {

    case 0:

        appDelegate.rowID = 0;
        rowImage=[UIImage imageNamed:@"euro.png"];
        cell.imageView.image=rowImage;
        break;

    case 1:

        appDelegate.rowID = 1;
        rowImage=[UIImage imageNamed:@"us.png"];
        cell.imageView.image=rowImage;   
        break;

rowID是yourAppDelegate文件中的int。

  //inYourNextViewController.m file
  - (void)viewDidLoad {
           [super viewDidLoad];

           appDelegate = (yourAppDelegate*) [[UIApplication sharedApplication]delegate];
           switch(appDelegate.rowID)
           {
                   case 0:
                   yourImageView.image = [UIImage imageNamed:image1];
                   break;

                   case 1:
                   yourImageView.image = [UIImage imageNamed:image2];
                   break;
           }

   }