我正在尝试获取标签的索引path.row。以下代码适用于某一点但是当我前进到下一个视图控制器然后返回时,第一个tableviewcell消失了。我可以点击它,它将我带到正确的下一个视图控制器。但它只是不可见。
当我输入我尝试在准备segue时获取标签的行时,这只是一个问题。
有没有人知道为什么它会消失? /有没有人知道如何在没有第一个tableview单元格消失的情况下访问tableview单元格的标签?
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([segue.identifier isEqualToString:@"favouritesPlaceDisplaySegue"]){
UITableViewCell *cell = (UITableViewCell *) sender;
NSIndexPath *indexPath = [self.favouritesTableView indexPathForCell:cell];
FavouritesPlaceDisplayViewController *FavPlaceDisplayVC = (FavouritesPlaceDisplayViewController*)segue.destinationViewController;
DealListModel *tempDealListObject = [self.favPlacesObjectArray objectAtIndex:indexPath.row];
FavPlaceDisplayVC.favouritesDisplaytModelObject = tempDealListObject;
//CODE THAT INTRODUCES ERROR
UILabel *tempDealNewlabel = (UILabel *)[cell.contentView viewWithTag:indexPath.row];
tempDealNewlabel.hidden = YES;
}
}//end of prepare for segue
答案 0 :(得分:0)
UILabel *tempDealNewlabel = (UILabel *)[cell.contentView viewWithTag:indexPath.row];
你的标签有一个恒定的标签,但你试图使用敲击单元格的行来获取它。你在cellForRowAtIndexPath中为标签分配一些标签,以便以后能够获得它们吗?
换句话说,不能保证viewWithTag:indexPath.row返回一个标签
编辑: 视图的默认标记为0,因此无法保证在点击第一个单元格时,您将获得viewWithTag:0的标签。尝试为标签的标签分配一些常数,如100
static const NSUInteger kLabelTag = 100;
cell.favouritesNewDealLabel.tag = kLabelTag;