【发布时间】:2012-01-13 14:03:09
【问题描述】:
我有一个 tableview 和一个 detailview,与 segues 连接。 我希望详细视图的标题是所选单元格的标题。
如果我在GradeDetail.m 中使用此代码,它可以工作,但当然是静态的:
self.navigationController.title = @"Title goes here";
另一方面,如果我使用它,它不起作用,但应该是动态的:
self.navigationItem.title = grade.fag;
我在必要时导入了 Grade 类,并在该类中定义了“fag”(在丹麦语中表示“学校科目”,不是同性恋) 属性。
下面是 tableview 的代码摘录:
...
- (id)initWithCoder:(NSCoder *)aDecoder
{
if ((self = [super initWithCoder:aDecoder]))
{
grades = [[NSMutableArray alloc] init];
Grade* grade = [[Grade alloc] init];
grade.fag = @"Dansk";
grade.mundtlig = @"7";
[grades addObject:grade];
...
}
return self;
}
以及推送详细视图的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
GradeDetail *detailViewController = [[GradeDetail alloc] init];
Grade* grade = [self.grades objectAtIndex:indexPath.row];
detailViewController.grade = grade;
//[self.navigationController pushViewController:detailViewController animated:YES];
}
注意上面的代码,我注释掉的内容:
[self.navigationController pushViewController:detailViewController animated:YES];
如果我删除情节提要中的 segue,并改用这行代码,详细视图会显示正确的标题,但视图未正确加载。 (阅读:我不想使用这行代码,我希望它在故事板中工作。)
如果您想查看更多代码或对以上部分内容进行澄清,请告诉我。
【问题讨论】:
-
那么在你使用 segue 的情况下,你是否在 prepareForSegue:sender: 方法中设置了详细视图控制器的等级属性?
-
我没有以编程方式设置详细视图控制器的序列。但我会研究你提到的方法。
-
好吧,那将解决它。该方法是您在即将呈现的视图控制器上配置您需要配置的任何内容的机会。您可以像在 tableView:didSelectRowAtIndexPath: 中那样设置 Grade 属性
标签: iphone objective-c uitableview storyboard