将数据传递回上一个视图控制器

时间:2014-10-13 19:30:58

标签: ios objective-c uiviewcontroller

我使用下面的cod将数据从第二个视图控制器传递给第一个视图控制器 但它不起作用,出了什么问题?

- (IBAction)donePressed:(id)sender {

NSManagedObject *selectedGroup=[_group objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];

ContactEditVC *firstViewController = [[ContactEditVC alloc] initWithNibName:@"ContactEditVC"  bundle:nil];
firstViewController .data=[NSString stringWithFormat:@"%@",[selectedGroup valueForKey:@"gName"]];
firstViewController ._group=selectedGroup;
[firstViewController .mybutton setTitle:@"success" forState:UIControlStateNormal];

  [self.navigationController popViewControllerAnimated:YES];
}

1 个答案:

答案 0 :(得分:0)

您正在创建一个全新的视图控制器并设置该数据,而不是引用前一个视图控制器。

传回数据的最佳方法是委托方法,如下所示:https://stackoverflow.com/a/19343715/1066424

或者,如果您在设置上一个视图控制器的属性时设置了死机,您可以通过从导航控制器堆栈中取出它来引用它(但我强烈建议这样做):

UIViewControllers *viewControllers = [[self navigationController] viewControllers];
ContactEditVC *firstViewController = (ContactEditVC *)viewControllers[[viewControllers count] - 2];
// do stuff with the firstViewController here