我试图将文本值、图像和uitextview从一个视图控制器传递到另一个视图控制器。但即使在完成任务后,这些值仍为零。
执行赋值语句后,titellabel、imageView和descriptionView为空。我已经分配并初始化了DetailsViewController,但在赋值后,这些值仍然显示为零。你能说出我在这里错过了什么吗?为什么他们不接受所分配的值。
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {
//DetailsViewController *view = [[DetailsViewController alloc]init];
DetailsViewController *view = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
NSLog([[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"title"]);
view.titleLabel.text = [[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"title"];
view.imageView.image = [self.images objectAtIndex:indexPath.row];
view.descriptionView.text = [[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"description"];
[self.navigationController pushViewController:view animated:TRUE];
}发布于 2016-06-07 08:16:54
纳文·RAM
在加载viewComponment属性之前,不能设置它们。
view.titleLabel.text = [[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"title"];
view.imageView.image = [self.images objectAtIndex:indexPath.row];
view.descriptionView.text = [[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"description"];上述三个语句将设置尚未加载的textLabel、textView和UIImageView属性,因此它将永远不会出现。
你能做的是:
声明三个属性,一个用于保存字符串,一个用于保存图像,另一个用于在DetailsViewController.h中保存DetailsViewController.h
让我们称他们为
@property (nonatomic,strong) NSString *title;
@property (nonatomic,strong) UIImage *passedImage;
@property (nonatomic,strong) NSString *descriptionText;将索引路径上的行修改为
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {
//DetailsViewController *view = [[DetailsViewController alloc]init];
DetailsViewController *view = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
NSLog([[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"title"]);
view.title = [[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"title"];
view.passedImage = [self.images objectAtIndex:indexPath.row];
view.descriptionText = [[self.xmlNews objectAtIndex:indexPath.row] objectForKey:@"description"];
[self.navigationController pushViewController:view animated:TRUE];
}最后,在ViewDidLoad of DetailsViewController中,将图像和标签设置为
self.titleLabel.text = self.title;
self.imageView.image = self.passedImage;
self.descriptionView.text = self.descriptionText;希望它能帮上忙
https://stackoverflow.com/questions/37673892
复制相似问题