0

我正在尝试在情节提要的核心数据程序中的两个视图控制器之间传递一个字符串。我设置它的方式我希望只为一个部分推送下一个视图。因此使用“didSelectRowAtIndexPath”而不是“prepareForSegue”。下面是我的“didSelectRow…”代码“五”是被推送的 viewController 类。

- (void)tableView:(UITableView *)tableView
        didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (indexPath.section == 0)
    {
        five *five=[[five alloc]init];
        five.delegate = self;
        [self performSegueWithIdentifier:@"segue1" sender:self];
    }
}

“二”是父视图。下面是在“五”类中创建的协议中使用的方法。“friendString”在“two”类中,“fiveString”在“five”类中。弹出视图时,字符串应该相同,然后我在“二”中的 UITextField 中使用“五”中添加的字符串。但是,弹出视图时它不会更新。

- (void)popFive:(five *)controller
{
    self.friendString=controller.fiveString;
    [self update];
    [self.tableView reloadData];
}

I believe the problem is related to how the seque is done in "didSelectRow…" Any help or ideas will be appreciated. Thanks.

4

1 回答 1

0

我认为当使用“didSelectRow ...”作为转场时,您还必须使用“prepareForSegue”。当我添加它时,它似乎能够在弹出子视图时在两个视图之间传递字符串。我包括下面的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

if (indexPath.section == 0)
{
    [self performSegueWithIdentifier:@"segue1" sender:self];
}

}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{   

if ([segue.identifier isEqualToString:@"segue1"])
{
    five *five = segue.destinationViewController;
    five.delegate = self;

}   
}
于 2012-06-11T17:20:21.827 回答