簡體   English   中英

使用情節提要板無法正確顯示Subview-title

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM