-1

我的问题:

我正在使用两个视图,第一个是 a TableView,另一个是pagecurlViewController。我需要的是有 20 行tableview,当我点击每一行时,我需要在pagecurlViewController. 我在一个数组中有 50 张图像,我遇到了麻烦。当我单击第 1 行时,它有所有 50 张图像,当我单击第 2 行、第 3 行、第 4 行时,它也只显示了 50 张图像。但我需要的是在一个特定的行中选择 3 个图像。有没有代码可以做到这一点?

4

3 回答 3

0

我想您只想按表格视图选择图像。

这是选择表视图。

选择

这是详细视图。

细节

起初,我制作了 property arrayImg

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        self.arrayImg = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"image0.jpg"],
                         [UIImage imageNamed:@"image1.jpg"],
                         [UIImage imageNamed:@"image2.jpg"], nil];
    }
    return self;
}

然后,我编写了单元格选择代码。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *s = [NSString stringWithFormat:@"image%d.jpg", indexPath.row];
    [self performSegueWithIdentifier:@"showImage" sender:s];
}

最后,我提出了prepareForSegue方法。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    DetailViewController *d = segue.destinationViewController;
    d.strImgName = sender;
}

在详细视图中,我刚刚在下面写道:

- (void)viewWillAppear:(BOOL)animated
{
    self.imageView.image = [UIImage imageNamed:strImgName];
}

整个项目在这里:https ://github.com/weed/p120801_ImageSelectorWithTableView

您可以下载示例项目并运行它。

我希望我的审判对你有所帮助。

于 2012-08-01T13:38:15.797 回答
0

您应该在方法中实现代码-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath并在中定义imageFunction:方法YourViewController.m

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

   [self.navigationController pushViewController:yourView animated:YES];
    if(!yourView)
    {
       yourView = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
    }
    [yourView imageFunction:[yourArray objectAtIndex:indexPath.row]];
    [self.navigationController pushViewController:yourView animated:YES];

}

我想这会对你有所帮助。

于 2012-08-01T13:10:58.780 回答
0

我假设您在表中只有一个部分,有 20 行,所有图像都在 your_ImageArray 中。然后你可以尝试类似下面的东西。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

int i = indexPath.row * 3;

 if(i < your_ImageArray.count - 3){
  for(int j = 0; j < 3; j++){

   NSLog(@"your image  = %@",[your_ImageArray objectAtIndex:i]);
   i++;

  }
}

}

但是上面的代码可以根据您的需要为您提供数组超出范围的异常原因您的行数和数组数不匹配

于 2012-08-01T12:54:57.643 回答