Iphone UITableViewCell出现问题并检查单击

Iphone UITableViewCell出现问题并检查单击,iphone,ios,uitableview,Iphone,Ios,Uitableview,因此,我使用uitableview来显示多个图像和标签。我希望能够检查单击的单元格标签的文本,以便识别单击的单元格 我这样做的原因是,我想对被单击的一个单元格执行不同的操作,对另一个单元格执行不同的操作 这就是我如何使用CustomCell类中的cell Defension填充我的单元格(来自原型单元格) //tableview datasource delegate methods -(NSInteger)numberOfSectionsInTableView:(UITableView *)t

因此,我使用uitableview来显示多个图像和标签。我希望能够检查单击的单元格标签的文本,以便识别单击的单元格

我这样做的原因是,我想对被单击的一个单元格执行不同的操作,对另一个单元格执行不同的操作

这就是我如何使用CustomCell类中的cell Defension填充我的单元格(来自原型单元格)

//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语句,只运行了一行注释过的代码,什么也没发生


请帮帮我,我不知道出了什么问题:/

只需再次检查是否已将UITableViewController添加为UITableViewDelegate,是否已通过编程方式或在界面生成器中将该委派连接回控制器?

在您的
方法中,您不应查看单元格。您应该查看数据模型中的数据。就像您在
cellforrowatinexpath
中所做的那样,获取索引XPath的数据。然后对数据进行适当的检查。

尝试将URL方法放入字符串中(例如http://)。

我不知道为什么您不容易理解它,只需在didselectRowatinexPath中使用indexpath.row,您就可以得到所需的单元格。

这是什么意思?我需要获取所选特定单元格中标签的文本,以便检查它是哪一个was@Maddy或者你是说我可以通过tableview中单元格数组的索引来检查哪个是?如果是这样,我该怎么做?我已经说过该怎么做了。使用indexPath就像在CellForRowatineXpath:方法中一样获取数据。一旦你有了数据,你就可以对数据做任何你需要做的事情。该单元只是一个视图。您的数据源中有您应该使用的实际数据。很抱歉,在这个问题上我只是有点不知所措,我想:/I我不知道如何检查特定单元格中标签的文本。我是否使用类似CustomCell*cell=[carrierTableView objectAtIndex:indexPath.row]的格式创建新单元格;不,您不需要创建另一个单元格。我是说你完全忽略了手机。看看数据。从视图中提取数据是不合适的。视图显示数据。对数据使用您的数据模型。作为一名新开发人员,您应该了解MVC-模型、视图和控制器。它在iOS.self.carrierTableView.delegate=self中非常重要;self.carrierTableView.dataSource=self;这么简单的回答我从来没有想过,为什么这会改变什么?出于好奇(它起作用了),当您考虑到您可以发明自己的URL方法并注册它们以使用与您在那里使用的应用程序调用基本相同的UIApplication调用来启动其他程序这一事实时,这是有意义的。