0

ストーリーボードを使用して、選択したセルのタイトルをdetil View Controllerに渡そうとしていますが、セルの選択のために簡単ではありません。

現時点でどちらが選択されているかを判断し、そのタイトルを詳細ビュー プロパティに渡す方法がわかりません。

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)

これが私の質問です - どうすればこれを行い、このタイトルを別のView Controllerに渡して使用できますか?

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 に答える