核心数据在切换视图时使属性为NULL

时间:2012-11-27 04:02:11

标签: iphone ios xcode core-data

我有四个观点。

视图1,显示带有添加按钮的表格视图。 (添加按钮不可见,它在屏幕截图上方)

View 1

视图2(按下添加按钮时显示)允许用户输入有关他们想要添加的表格视图单元格的数据。 按下save按钮后,新单元格将添加到视图中。

view 2

查看3如果用户想要编辑单元格,则只需点击单元格即可。此视图只允许用户编辑表中已有的单元格。

view 3

但是当我简单地将视图4放在视图1(表视图)和3(单元格编辑器视图)之间时,属性/标签显示null,其中应该显示用户输入。但是当我从视图1和3之间删除视图4时,应用程序再次完美。有什么原因?

view 4

我只是通过以下方式切换视图:

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

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

View3 * three = (View3 *) [storyboard instantiateViewControllerWithIdentifier:@"view3VC"];

View4 * four = (View4 *) [storyboard instantiateViewControllerWithIdentifier:@"view4VC"];

[tableView deselectRowAtIndexPath:indexPath animated:YES];

three.managedObjectContext = self.context;

MyEntityClass *entity = [self.tableArray objectAtIndex:indexPath.row];

three.3entity = entity;

[self presentViewController:four animated:YES completion:nil];

}

1 个答案:

答案 0 :(得分:0)

这有点令人困惑,但我想我会尽力帮助你。

在您的代码中:

MyEntityClass *entity = [self.tableArray objectAtIndex:indexPath.row];
three.3entity = entity;

你说它在调用view3时有效,我想这是因为你已经将实体分配给了view3。

但是如果你像这样呈现view4,你就没有在它之间分配任何内容。

View4 * four = (View4 *) [storyboard instantiateViewControllerWithIdentifier:@"view4VC"];

[self presentViewController:four animated:YES completion:nil];

现在,view4是一个全新的空视图控制器。它在您的标签中显示null并不奇怪。

尝试以与view3完全相同的方式修复它。