从ListView传递/共享数据到EditView控制器的示例? (在UINavigationController布局中)

时间:2011-02-23 02:54:55

标签: iphone uiviewcontroller interface-builder uinavigationcontroller

假设我有一个项目:

  • 使用具有(a)主屏幕的UINavigationController - 项目列表,以及(b)项目的编辑屏幕
  • 我在ApplicationDelegate中保存了UINavigationController实例
  • 为列表屏幕和编辑屏幕设置两个带有NIB的独立UI控制器(即带有XIB文件的ADD UIViewController)
  • 项目列表存储在ListScreen UIViewController中(例如数据对象的NSArray)

问题 - 在如何传递/共享数据项方面,我仍然不清楚如何触发/实现从ListScreen(在用户点击一行之后)到Edit / DetailsS​​creen的切换,即在EditScreen中它可以更新数据,然后当编辑控制器弹出UINavigationController堆栈时,列表屏幕将是最新的。

任何人都可以提供一些有关如何执行此操作的评论& /或指向一些示例代码的指针,以演示如何执行此操作。

1 个答案:

答案 0 :(得分:1)

在您的详细信息视图中(我从您的帖子中收集到您希望有一个详细信息屏幕,您可以在其中查看和编辑该项目),您将为您的个人对象实现一个属性,无论它是什么。

@property (nonatomic, retain) Item *item;

然后在ListController中的didSelectRowAtIndexPath:方法中,您将设置该属性。

detailVC.item = [items objectAtIndex:indexPath.row];

编辑:要确保在取消模态视图控制器时listView是最新的,您需要在viewWillAppear中实现重新加载:在ListViewController中。如果您的支持是一个简单的数组,它可能就像[self.tableView reloadData]一样简单。