单击表视图的单元格时,如何将数据从一个表视图传递到另一个视图?

时间:2012-09-11 20:31:32

标签: iphone ios xcode uitableview pass-data

我是初学者,在做项目时遇到一些问题。我有一个表视图,我通过XML Parsing得到一些NSString值。这就像: 单元格1:基本名称 - 名称,地址,电话号码,日期。 单元格2:特色名称 - 名称,地址,电话号码,日期。 单元格3:餐馆名称 - 姓名,地址,电话号码,日期。

这里,单元格1,2,3是我的表格视图的单元格,名称,地址,电话号码,日期是值。我通过XML解析获得基本名称,特色名称,餐馆名称和所有这些值。现在我的工作是,当我点击基本名称时,基本名称的详细信息(姓名,地址,电话号码,日期)将传递到另一页。还有一个单击时将显示的每个单元格的描述。 我能够点击一个单元格并转到另一个页面,但无法传递这些数据。 需要注意的是,我使用的是Xcode 4.2,而不是使用故事板。

3 个答案:

答案 0 :(得分:3)

您需要考虑模型,视图和控制器。您的模型是表格所呈现的基础数据。这些表是视图,控制器负责从模型中提取数据并将其传递给表和视图。

因此,不要考虑“我如何在表和视图之间传递数据?”,而是考虑“如何为视图控制器提供数据,以便可以通过它的数据是什么?“

所以在这种情况下,正如艾伦建议的那样,你将不得不传递物体。

假设您的第一个表的模型是NSArray NSDictionaries,这是parsinf XML的一个相当常见的结果。每个字典都有餐厅信息的键值对。您的详细信息视图控制器需要字典的属性。在tableView:didSelectRowAtIndexPath:方法中,您将为详细视图实例化新的视图控制器,然后将视图控制器的data属性设置为数组中的字典,该索引对应于刚刚被选中的单元格的行。

答案 1 :(得分:0)

您的详细信息视图控制器只需要为您希望它显示的相关模型对象实现属性或setter方法。通常,您可以在主tableView:didSelectRowAtIndexPath:代理的UITableView方法中设置此属性。

答案 2 :(得分:0)

使用Delegate变量检查其中一个概念:

1)Passing Parameter From a View Back To another View's UITableView's Cell

可用于将值传递给一次分类的多个。

或者,你也可以使用Singleton类做同样的事情。

在您的情况下,您可以使用Array / Dictionary将多个值传递给另一个类。