我有一个带有一些静态单元格的 UITableViewController。每个单元格都有正确的细节样式。通过触摸其中一个,我转到下一个控制器。在下一个控制器中,我有两个带有复选标记的单元格。
问题:如何通过仅触摸 NEXT 控制器上的一个单元格来查看“正确细节”的信息?
我有一个带有一些静态单元格的 UITableViewController。每个单元格都有正确的细节样式。通过触摸其中一个,我转到下一个控制器。在下一个控制器中,我有两个带有复选标记的单元格。
问题:如何通过仅触摸 NEXT 控制器上的一个单元格来查看“正确细节”的信息?
根据上面的评论,我对您想要实现的目标有了一个初步的了解。您想使用[cell setAccessoryView:aView];
而不是setAccessoryType
.
对应于您想要显示多少信息(如果它只是一个小图像或一个巨大的 textView),有更好的选择。
我建议创建一个自定义UITableViewCell
子类。这些可以在 IB 中布局,您可以很容易地连接 IBOutlets 并在其上放置自定义方法和属性:
- (void)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MUTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if(!cell) {
cell = (MUTableViewCell *)[[[NSBundle mainBundle] loadNibNamed:@"MUTableViewCell" owner:nil options:nil] objectAtIndex:0];
}
[cell setStoredInfoText:[inforSourceArray objectAtIndex:[indexPath row]]];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MUTableViewCell *cell = (MUTableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
[cell callYourCustomMethod];
[cell setInfoFieldText:@"my informational text"];
// or either display the information you set later to the cell in -cellForRowAtIndexPath
[cell setInfoFieldText:[cell storedInfoText]];
// you can also merge the above methods to a method called displayInfo which then gets the storedText property internally:
[cell displayInfo];
}
MUTableViewCell.h
@property (nonatomic, retain) NSString *storedInfoText;
@property (nonatomic, strong) IBOutlet UILabel *label;
- (void)setInfoFieldText:(NSString *)text;
- (void)displayInfo;
MUTableViewCell.m
- (void)setInfoFieldText:(NSString *)text {
[_label setText:text];
}
- (void)displayInfo {
[_label setText:_storedInfoText];
}