0

我正在尝试使用情节提要将选定的单元格标题传递给 deatil 视图控制器,但这并不容易,因为单元格选择。

我不知道如何确定目前选择了哪一个并将其标题传递给 deatil views 属性。

我想我必须先使用prepareForSegue:sender(这是我得到所有东西的地方)然后 performSegueWithIdentifier:sender:在里面打电话tableView:didSelectRowAtIndexPath,对吧?

这是我的样本:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"projectDetailsSegue"]) {
        AlbumViewController *destinationView = [segue destinationViewController];
        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        UITableViewCell *selectedCell = [self.tableView cellForRowAtIndexPath:selectedRowIndex];
        destinationView.projectTitle = selectedCell.textLabel.text;
    }
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"projectDetailsSegue" sender:self];
}

当我在详细视图控制器中记录 projectTitle 时,它​​会显示(null)

这是我的问题 - 我怎样才能做到这一点并将这个标题传递给另一个视图控制器来使用它?

4

1 回答 1

2

在这里找到解决方案。这是我正确的prepareForSegue:sender:方法体:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"projectDetailsSegue"]) {
        AlbumViewController *destinationView = [segue destinationViewController];
        UITableViewCell *selectedCell = (UITableViewCell *)sender;
        destinationView.projectTitle = selectedCell.textLabel.text;
    }
}
于 2013-08-07T08:56:26.103 回答