Я просто пытаюсь создать приложение для iPhone и iPad. Для этого я создал табличное представление, которое создает ячейки, ожидающие json, который будет получен при загрузке приложения. Внутри метода
tableView:cellForRowAtIndexPath:
Я инициирую ячейку, которая будет использоваться для iPhone, и устанавливаю конкретные значения из json. Я использую ячейку - это пользовательская ячейка, созданная с новым объектом и NIB-файлом. Код выглядит так:
static NSString *CellIdentifier = @"tvChannelIdentifier";
tvChannelCell *cell = (tvChannelCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"tvChannelCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
....
Теперь, когда я пытаюсь заставить приложение работать и на iPad, я создал новую настраиваемую ячейку, также с новым объектом и NIB-файлом. Имена переменных такие же, как в customIPhoneCell, поэтому мне не нужно менять весь код. Я просто вставил переключатель в tableView: cellForRowAtIndexPath:, чтобы показать правильную ячейку, но к ней нельзя получить доступ с помощью кода:
static NSString *CellIdentifier = @"tvChannelCell";
static NSString *IPadCellIdentifier = @"tvChannelIPadCell";
//determination which device ---> choose cell
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
tvChannelCell *cell = (tvChannelCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}else{
tvChannelIPadCell = (tvChannelIPadCell *) [tableView dequeueReusableCellWithIdentifier:IPadCellIdentifier];
}
Я попытался определить объекты ячеек в верхней части класса, но тогда я не могу использовать то же имя переменной. Я также попытался выбрать файл NIB на iPad, чтобы проверить, будет ли он отображаться, но ничего не происходит. И я попытался установить UITableviewcell вверху,
UITableViewCell *cell
и установите конкретный тип ячейки внутри моего переключателя в cellForRowAtIndexPath, но тогда переменные не будут доступны.
Итак, мой вопрос: можно ли сделать этот переключатель внутри метода tableview или мне нужно кодировать несколько частей для каждого устройства, где каждый тип ячейки имеет собственное имя переменной?