我正在尝试将给定选定单元格的标签传递给其他视图控制器...
ListViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:selectedIndexPath];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle: nil];
DetailViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"DetailVC"];
viewController.venueName = cell.textLabel;
[self.navigationController pushViewController:viewController animated:YES];
}
这是我的DetailViewController:
·H
@interface DetailViewController : UIViewController {
IBOutlet UILabel *venueName;
}
@property (nonatomic, strong) IBOutlet UILabel *venueName;
venueName永远不会获取数据。在我的.m中我也合成了场所名称。
答案 0 :(得分:1)
这是因为您在为其设置字符串时未连接UILabel插座。我建议您创建一个字符串属性来存储该值,并在DetailViewController的viewDidLoad中将字符串设置为venueName。 干杯!!
答案 1 :(得分:1)
您需要像设置和获取文本一样修改以下内容: -
viewController.venueName.text = cell.textLabel.text;
答案 2 :(得分:0)
因此,venueName
是指向标签的指针,它指向一个表格单元格的现有标签。这显然是错误的 - 您不是要使用表格单元格中的实际标签,而是使用存储在其中的文本。这里的其他答案都是正确的:您肯定是指将一个标签的text
属性指定给另一个标签的属性,并且当时尚未创建插座viewController.venueName
所连接的标签这段代码执行。
您应该立即修复代码,将有问题的数据(即cell.textLabel.text
)分配给目标视图控制器中的字符串属性。让该控制器中的-viewDidLoad
或-viewWillAppear
方法设置text
标签的venueLabel
属性。在实例化视图层次结构后,将调用这些方法中的任何一个。