2011-05-17 72 views
1

设置在UI表格行的唯一标识符,检索所以,我有类型的MyClass对象的数组,并且定义以下变量:方法在选择

@property (retain) IBOutlet NSString* productName; 
@property (retain) IBOutlet NSString* brandName; 
@property (retain) IBOutlet NSString* category; 
@property (retain) IBOutlet NSString* productDetails; 
@property (retain) IBOutlet NSString* productPrice; 
@property (retain) IBOutlet NSString* points; 
@property (retain) IBOutlet NSString* image; 

并且Ive设置的构造和一切正确使用类MyClass。在我的一个视图控制器中,我正在创建MyClass的对象,并且我可以使用product.productName = @“SomeProduct”等来设置和正确获取。

现在,这里是我卡住的地方。我在我的一个视图中嵌入了一个TableViewController,它将productName显示为每个单元格的textLabel属性。用户可以通过滚动浏览表格来选择产品。但是,当我选择一行时,我需要一种方法来访问单元格发起的对象,以便在屏幕右侧(图像和其他产品信息)填充其他信息。有没有一种方法可以设置一个隐藏的唯一ID,可以轻松识别对象?我真的不想根据文本标签匹配product.productName来选择对象,而且我不认为在我缩放应用程序时会起作用。如果有办法将对象本身“存储”到单元格中,那将会很棒。如果没有,在单元中存储密钥的某种方式会让我建立一个散列表来获取我需要的信息。

+0

我意识到detailTextLabel属性可以存储一个键,但我有一种感觉,这已经完成之前,并以更好的方式... – ephilip 2011-05-17 19:56:00

回答

0

您应该使用以下方法在每个UITableView单元上设置文本标签。在此方法中,您可以找到适当的MyClass对象,并将UITableView单元格的textLabel属性设置为MyClass对象的属性。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

只要你正在使用这个方法来填充你的细胞基本上可以复制你用它来找到正确的MyClass的代码对象为以下方法,在选择细胞被激活:

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

找到正确的MyClass对象后,不要设置属性,而要调用方法来使用正确的信息更新屏幕右侧的视图。

看看UITableView class reference