所以我使用 uitableview 来显示多个图像和标签。我希望能够检查单击的单元格标签的文本,以便确定单击了哪个单元格。
我这样做的原因是因为我想对一个被单击的单元格执行不同的操作,而对另一个单元格执行不同的操作。
这就是我使用名为 CustomCell 的类的单元格定义(从原型单元格)填充单元格的方式
//tableview datasource delegate methods
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return cellIconNames.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
cellIconName = [cellIconNames objectAtIndex:indexPath.row];
NSString *cellIconImageName = [[self cellIconImages] objectAtIndex:[indexPath row]];
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil){
cell = [[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.rightLabel.text = [cellIconNames objectAtIndex:indexPath.row];
cell.carrierImage.image = [UIImage imageNamed:cellIconImageName];
cell.urlString = [cellIconNames objectAtIndex:indexPath.row];
return cell;
}
我检查哪个被点击的方法是这样做:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;{
CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];
//[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.google.com"]];
if ([cell.urlString isEqualToString:@"Aetna"]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.aetna.com"]];
}else if([cell.urlString isEqualToString:nil]){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.google.com"]];
}
NSLog(@"cell was clicked %@", cell);
}
当我单击一个单元格时,没有任何反应。现在我已经制作了 NSLOG,以便我可以确保正确读取单元格。
我还注释掉了我的测试代码行,我将 if else 语句注释掉了,只运行了注释的代码行,没有任何反应。
请帮助我,我不知道出了什么问题:/