0
votes
- (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;
}

How can I take the text from the lblTitle.text and push it with this:

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

but when I click on another UITableViewCell it will send the lblTitle for each row that I click on.

2
Please do not post code at us.PengOne

2 Answers

1
votes

don't have a Mac next to me, so my code may contain a few errors.

What I understood: you want to get text from a label from a cell when you click on a cell.

My solution:

In your cellForRowAtIndexPath method add that line:

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

then in didSelectRowAtIndexPath method you can do:

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

As I said: I don't have a Mac nearby, so you will have to play with the code a bit.

hope it helps

0
votes
LocationsScreenTableViewCell *cell = (LocationsScreenTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
NSString *title = cell.lblTitle.text;