【问题标题】:How do I pass data from one table view to another view when clicking on a cell of a table view? [closed]单击表格视图的单元格时,如何将数据从一个表格视图传递到另一个视图? [关闭]
【发布时间】:2012-09-04 20:11:45
【问题描述】:
我是一个初学者,在做我的项目时遇到了一些问题。我有一个表格视图,我通过 XML Parsing 获得了一些 NSString 值。这就像:
单元格 1:基本名称 - 姓名、地址、电话号码、日期。
单元格 2:特色名称 - 姓名、地址、电话号码、日期。
单元格 3:餐厅名称 - 名称、地址、电话号码、日期。
在这里,单元格 1、2、3 是我的表格视图的单元格,名称、地址、电话号码、日期是值。我通过 XML 解析得到基本名称、特色名称、餐厅名称和所有这些值。现在我的工作是,当我单击基本名称时,带有基本名称的详细信息(姓名、地址、电话号码、日期)将传递到另一个页面。单击时将显示每个单元格的描述。
我可以单击一个单元格并转到另一个页面,但无法传递这些数据。
这里需要注意的是,我使用的是 Xcode 4.2 而不是故事板。
【问题讨论】:
标签:
iphone
ios
xcode
uitableview
pass-data
【解决方案2】:
您需要考虑模型、视图和控制器。您的模型是您的表呈现的基础数据。表就是视图,控制器负责从模型中提取数据并将其传递给表和视图。
因此,与其考虑“我如何在表和视图之间传递数据?”,不如考虑“如何为我的视图控制器提供数据,以便 it 可以通过数据到它的视图?”
所以在这种情况下,正如 Alan 建议的那样,您将不得不传递对象。
假设您的第一个表的模型是 NSArray 的 NSDictionaries,这是 parsinf XML 的一个相当常见的结果。每个字典都有餐厅信息的键值对。您的详细视图控制器需要一个字典属性。在tableView:didSelectRowAtIndexPath: 方法中,您将为详细视图实例化新的视图控制器,然后将视图控制器的数据属性设置为数组中与刚刚选择的单元格行相对应的索引处的字典。
【解决方案3】:
您的详细视图控制器只需要为您希望它显示的相关模型对象实现一个属性或一个设置器方法。通常,您会在主 UITableView 的委托上的 tableView:didSelectRowAtIndexPath: 方法中设置此属性。