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;
}

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.

1
  • 2
    Please do not post code at us. Commented Jan 11, 2012 at 21:33

2 Answers 2

1

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

Sign up to request clarification or add additional context in comments.

Comments

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.