- (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 ..
谢谢!
答案 0 :(得分: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,所以你必须稍微玩一下代码。
希望有所帮助
答案 1 :(得分:0)
LocationsScreenTableViewCell *cell = (LocationsScreenTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
NSString *title = cell.lblTitle.text;