UserDetailViewController

UserDetailViewController

我正在看书中的教程,一切都很好,直到我不得不从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之间进行转换的代码,但是有些值不属于我拥有的代码,例如recipeNamerecipeNames,如下所示:
recipeName在我的代码上labelNamerecipeNames在我的代码上是字典[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];
}

08-28 21:08