根据变量使用不同的图像初始化UIImageView

时间:2011-12-20 15:51:17

标签: ios cocoa-touch

我有一些带有一些单元格的UITableView。当点击一个单元格时,我将一个名为Index的字符串变量设置为被点击的单元格的索引。我已经验证了这与我的UIImageView控制器的NSLog of Index一起使用。现在,我要做的是将UIImageView的图像设置为与轻敲的单元格对应的图像(即每个单元格的不同图像)。我尝试这样做的方式(它不起作用)是在我的UIImageView的控制器的ViewDidLoad方法中使用此代码:

if ([[TableViewController alloc] Index] isEqualToString:@"0"]) {
   Display.image = [UIImage imageNamed:@"0.jpg"]; 
}  

'Display'是我的UIImageView的名称。 这段代码是否正确?如果是的话,我应该把它放在哪里,以便当我点击第一个单元格时,我的UIImageView会使用名为“0.jpg”的图像进行初始化?

2 个答案:

答案 0 :(得分:1)

我认为你的if([[TableViewController alloc] Index] isEqualToString:@“0”])将数字(Index)与字符串“0”进行比较。也许这应该是这样的:

if([[TableViewController alloc] Index] == 0)

答案 1 :(得分:0)

您的图像视图控制器是否已在与您的表视图相同的屏幕上可见(已加载),或者您是否正在为表视图上的每个单元格点按一个新的图像视图控制器?这对如何处理这个问题产生了巨大的影响。如果您正在执行前者,则使用viewDidLoad将无法工作,因为视图已加载。您必须编写一种方法来更改图像,例如:

-(void)changeImage:(NSString *)imageName {
    Display.image = [UIImage imageNamed:imageName];

如果您每次都推送一个新的图像视图,那么您将需要在图像视图类中创建一个实例变量,并将其放在您的表视图中didSelectRow ...方法:

myImageView.imageName = [NSString stringWithFormat:@"%d.jpg", indexPath.row];
//now push your view

发布更多代码可能会有所帮助,以便我们可以看到加载视图的情况。