Метод установки уникального идентификатора в строке таблицы пользовательского интерфейса, который можно получить при выборе - PullRequest
1 голос
/ 17 мая 2011

Итак, у меня есть массив объектов типа 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;

И я настроил конструктор и все правильно в классе MyClass.В одном из моих контроллеров представления я создаю объекты MyClass и могу использовать product.productName = @ "SomeProduct" и т. Д. Для правильной установки и получения.

Теперь вот где я застрял.Я встраиваю TableViewController в одно из моих представлений, которое отображает productName как свойство textLabel каждой ячейки.Пользователи могут выбирать между продуктами, прокручивая таблицу.Однако, когда я выбираю строку, мне нужен способ доступа к объекту, из которого произошла ячейка, чтобы заполнить другую информацию в правой части экрана (изображение и другая информация о продукте).Есть ли способ, которым я могу установить скрытый уникальный идентификатор, который бы легко идентифицировать объект?Я действительно не хочу выбирать объект на основе текстовой метки, совпадающей с product.productName, и я не думаю, что это сработает, когда я масштабирую приложение.Если есть способ «сохранить» сам объект в ячейке, это было бы здорово.Если нет, то какой-то способ хранения ключа в ячейке позволил бы мне создать хеш-таблицу для получения необходимой информации.

1 Ответ

0 голосов
/ 16 ноября 2011

Вы должны использовать следующий метод для установки текстовой метки в каждой из ваших ячеек UITableView. В этом методе вы найдете соответствующий объект MyClass и установите для свойства textLabel ячейки UITableView значение свойства объекта MyClass.

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

Пока вы используете этот метод для заполнения ваших ячеек, вы можете в основном скопировать код, который вы используете, чтобы найти правильный объект MyClass, в следующий метод, который активируется при выборе ячейки:

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

Вместо установки свойства, когда вы найдете правильный объект MyClass, вызовите метод, чтобы обновить представление в правой части экрана с правильной информацией.

Взгляните на ссылку на класс UITableView .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...