[英]Subview-title not displayed properly using storyboard
我有一個表視圖和一個詳細視圖,與segues連接。 我希望detailview的標題是所選單元格的標題。
如果我在GradeDetail.m
使用此代碼,則可以使用,但是當然是靜態的:
self.navigationController.title = @"Title goes here";
另一方面,如果我使用它,它將不起作用,但是應該是動態的:
self.navigationItem.title = grade.fag;
property defined in the class. 我在必要時導入了班級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,並改用這行代碼,則詳細視圖將顯示正確的標題,但視圖加載不正確。
請告訴我您是否想查看更多代碼或澄清以上內容。
您需要重寫-prepareForSegue:sender:
以鈎住傳入的視圖控制器並設置所需的任何屬性。 您還需要在情節提要中指定segue標識符。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ShowGradeDetails"])
{
GradeDetail *detailViewController = (GradeDetail *)segue.destinationViewController;
NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
Grade *selectedGrade = [self.grades objectAtIndex:selectedIndexPath.row];
detailViewController.grade = selectedGrade;
}
}
也許嘗試設置viewController的標題: self.title = grade.fag;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.