我正在看书中的教程,一切都很好,直到我不得不从tableView接收数据为止,我必须提到我修改了一些基本教程以满足我的需求,因为我使用的是来自API的JSON值。当我使用 self 引用值并说变量为nil时,它崩溃。还必须提及,该标签已被添加为参考出口,并且customClass
也已被创建并添加到视图中。除此之外,将适当的Segue添加到detailViewController
UserDetailViewController.h
@interface UserDetailViewController : UIViewController
@property (nonatomic, strong) NSString *labelName;
@property (nonatomic, strong) IBOutlet UILabel *detailLabelName;
@end
UserDetailViewController.m
这是在Table和
detailView
之间进行转换的代码,但是有些值不属于我拥有的代码,例如recipeName
和recipeNames
,如下所示:recipeName
在我的代码上labelName
recipeNames
在我的代码上是字典[dictionary objectForKey:@"name"]
而且不知道如何将这部分放在一起。 :(
//这是我处理数据传输的地方
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"userDetailView"])
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
RecipeDetailViewController *destViewController = segue.destinationViewController;
destViewController.recipeName = [recipeNames objectAtIndex:indexPath.row];
}
}
最佳答案
根据我的理解,您想根据labelName为detailLbelName
设置文本。这个值来自您的父视图控制器。
您必须执行以下操作:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UserDetailViewController *detailController = [[UserDetailViewController alloc]initWithNibName:@"UserDetailViewController" bundle:nil];
self.detailController.lableName = @"Your Text According to Cell"
[self.navigationController pushViewController:detailController animated:YES];
}
在您的
UserDetailViewController
中:- (void)viewWillAppear
{
self.title = self.labelName;
[self.detailLabelName setText:self.labelName];
}