使用故事板将单元格标题传递给详细视图

时间:2013-08-07 08:36:37

标签: ios storyboard uitableview segue

我正在尝试使用故事板将选定的单元格标题传递给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)

这是我的问题 - 如何执行此操作并将此标题传递给另一个视图控制器以使用它?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

找到解决方案here。这是我正确的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;
    }
}