我正在尝试使用故事板将选定的单元格标题传递给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)
。
这是我的问题 - 如何执行此操作并将此标题传递给另一个视图控制器以使用它?
答案 0 :(得分:3)
请看这个链接:
http://www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/
希望它会对你有所帮助。答案 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;
}
}