首页 文章

UITableViewCell文本推送到viewController

提问于
浏览
0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    LocationsScreenTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"LocationsScreenTableViewCell" owner:nil options:nil];
        for (UIView *view in views) {
            if([view isKindOfClass:[UITableViewCell class]])
            {
                cell = (LocationsScreenTableViewCell*)view;
            }
        }
    }
CGRect rectlblTitle = CGRectMake(88, 5, 130, 21);
    UILabel * lblTitle = [[UILabel alloc]initWithFrame:rectlblTitle];
    lblTitle.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
    lblTitle.textAlignment = UITextAlignmentLeft;
    lblTitle.textColor = [UIColor whiteColor];
    lblTitle.text = [arrPlaces objectAtIndex:indexPath.row];
    CGRect rectlblDescription = CGRectMake(88, 26, 210, 35);
    UILabel * lblDescription = [[UILabel alloc]initWithFrame:rectlblDescription];
    lblDescription.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
    lblDescription.textAlignment = UITextAlignmentLeft;
    lblDescription.textColor = [UIColor whiteColor];
    lblDescription.text = @"Here comes the cell's description. you can choose whatever you like. :)";
    lblDescription.font = [UIFont systemFontOfSize:12.5];
    lblDescription.numberOfLines = 2;
    CGRect rectlblDate = CGRectMake(245, 2, 80, 21);
    UILabel * lblDate = [[UILabel alloc]initWithFrame:rectlblDate];
    lblDate.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
    lblDate.textAlignment = UITextAlignmentLeft;
    lblDate.textColor = [UIColor whiteColor];
    lblDate.text = @"11.01.2012";
    lblDate.font = [UIFont systemFontOfSize:12.5];
    lblDate.numberOfLines = 1;
    [cell.contentView addSubview:lblTitle];
    [cell.contentView addSubview:lblDescription];
    [cell.contentView addSubview:lblDate];
    return cell;
}

我怎样才能从lblTitle.text中获取文本并将其推送到:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { PlaceDitailsScreen * tempscreen = [[PlaceDitailsScreen alloc]init [self.navigationController pushViewController:tempscreen animated:YES]; }

但是当我点击另一个UITableViewCell时,它会为我点击的每一行发送lblTitle .

谢谢!

1 回答

  • 1

    我旁边没有Mac,所以我的代码可能包含一些错误 .

    我理解的是:当您单击单元格时,您希望从单元格中的标签获取文本 .

    我的解决方案

    在您的cellForRowAtIndexPath方法中添加该行:

    lblTitle.tag = 1337; //or some other number, I just like 1337 xD
    

    然后在didSelectRowAtIndexPath方法中你可以做到:

    UILabel *blah = (UILabel*)[[self.tableView cellForRowAtIndexPath:indexPath]viewWithTag:1337];
    NSString *theStringThatYouNeed = blah.text;
    

    正如我所说:我附近没有Mac,所以你必须稍微玩一下代码 .

    希望能帮助到你

相关问题