0

我试图在 UITableViewController 之间传递数据,显示如下:

SeleccionBundesligaViewController *seleccionBundesligaVC = [[SeleccionBundesligaViewController alloc]initWithStyle:UITableViewStylePlain];

seleccionBundesligaVC.title = @"1.Bundesliga";
[self.navigationController pushViewController:seleccionBundesligaVC animated:YES];

当我选择一行时,它被关闭:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSDictionary *dic = [equipos objectAtIndex:indexPath.row];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
    InformacionPartidaViewController *infoPartidaVC = [storyboard instantiateViewControllerWithIdentifier:@"infoPartidaVC"];
    [self.navigationController popViewControllerAnimated:YES];
    [infoPartidaVC.labelNombreEquipo setText:[dic objectForKey:@"nombre"]];

}

但是当我选择该行时,它不会将数据传递给“infoPartidaVC”。

4

2 回答 2

1

最好的办法是在 SeleccionBundesligaViewController 的 .h 文件中创建一个属性:

@property (weak, nonatomic) InformacionPartidaViewController *infoPartidaVC;

当你创建你的 UITableViewController 并且在你推送它之前,添加引用:

SeleccionBundesligaViewController *seleccionBundesligaVC = [[SeleccionBundesligaViewController alloc]initWithStyle:UITableViewStylePlain];

seleccionBundesligaVC.title = @"1.Bundesliga";
seleccionBundesligaVC.infoPartidaVC = self;
[self.navigationController pushViewController:seleccionBundesligaVC animated:YES];

然后,在您的 UITableViewController 中的 didSelectRowAtIndexPath 中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSDictionary *dic = [equipos objectAtIndex:indexPath.row];

    [self.navigationController popViewControllerAnimated:YES];
    [self.infoPartidaVC.labelNombreEquipo setText:[dic objectForKey:@"nombre"]];
}
于 2013-07-23T22:40:38.867 回答
0

我认为您的问题是您在显示标签之前设置标签的文本。看看我回答的这个问题

于 2013-07-23T22:28:20.013 回答