我在UIViewController
之上添加了tableview,并且我还实现了UITableViewDataSource
和UITableViewDelegate
方法
出于某种原因,我没有从didSelectRowAtIndexPath.
中获得价值我得到indexPath.row
的预期值,但selectedCell.textLabel.text
返回nil
。
我无法弄清楚可能是什么问题。我正在使用动态表。
//Array of multiple objects is filled through the delegated arrays and the arrays are properly filled.
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return _arrayForMultipleObjects.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
array = [[NSMutableArray alloc]init];
// Configure the cell...
_singleSelectionLabel= (UILabel *) [cell viewWithTag:2];
_singleSelectionLabel.text=[self.arrayForMultipleObjects objectAtIndex:indexPath.row];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *valu ;
NSLog(@"%i count",indexPath.row);
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = selectedCell.textLabel.text;
NSLog(@"%@",cellText);
//Here cellText is null
if([tableView cellForRowAtIndexPath:indexPath].accessoryType==UITableViewCellAccessoryNone)
{ [tableView cellForRowAtIndexPath:indexPath].accessoryType=UITableViewCellAccessoryCheckmark;
valu = cellText;
}
NSLog(@"%@",valu);
}
答案 0 :(得分:1)
如果您使用的是故事板,那么表格单元格的默认单元格样式为Custom
,它会为您提供一个空白单元格,您可以在其中添加其他类型的控件。
如果您将标签拖到单元格上并更改了其文本,那么您可能使用自定义样式UITableViewCell
。
属性textLabel仅适用于Custom之外的其他类型的单元格,例如Basic或Detailed。
请仔细检查是否适合您。
编辑:已准备就绪,您可以像这样获取文字:
self.arrayForMultipleObjects[indexPath.row]