我正在尝试在故事板核心数据程序中的两个视图控制器之间传递一个字符串。我设置它的方式我希望下一个视图仅推送一个部分。因此使用“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中使用“five”中添加的字符串。但是,弹出视图时不会更新。
- (void)popFive:(five *)controller
{
self.friendString=controller.fiveString;
[self update];
[self.tableView reloadData];
}
我认为问题与“didSelectRow ...”中的seque如何完成有关。任何帮助或想法都将受到赞赏。感谢。
答案 0 :(得分:0)
我认为当使用“didSelectRow ...”作为segue时,你还必须使用“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;
}
}