Несколько пользовательских ячеек динамически загружаются в одно представление таблицы

У меня проблема с некоторыми из моего кода. Я весьма уверен, что есть очень простое решение, я просто не могу его увидеть! В основном я использую один класс табличного представления для отображения различных данных (контент, элементы, ходы). Вместо трех разных контроллеров табличного представления у меня есть один, который отслеживает, какая ячейка нажата, и показывает соответствующие данные. Все работает очень хорошо! Я использую пользовательские классы ячеек с отдельным файлом пера, поэтому мне нужно правильно реализовать оператор if (или оператор switch), который проверяет, какая ячейка была нажата (self.title), а затем создавать пользовательскую ячейку на основе этого.

Очевидно, что проблема, с которой я сталкиваюсь, связана с областью видимости, cell.imageView не имеет представления о том, на что он ссылается, потому что он находится вне области видимости, когда в операторе if.

Я пытался использовать

id cell;

Я получаю те же ошибки. Какой способ для меня это сделать так каждый "заглавие" использует другую пользовательскую ячейку?

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

            static NSString *CellIdentifier = @"Cell";


            if (title == @"Content" || title == @"Favorite Content")
            {
                ContentCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

                if (cell == nil) {
                    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"ContentCell" owner:self options:nil];

                    for (id currentObject in objects) {
                        if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                            cell = (ContentCell *)currentObject;

                            break;
                        }
                    }
                }

            }
            else if (title == @"Items" || title == @"Favorite Items")
            {
                ItemCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

                if (cell == nil) {
                    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"ItemCell" owner:self options:nil];

                    for (id currentObject in objects) {
                        if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                            cell = (ItemCell *)currentObject;

                            break;
                        }
                    }
                }

            }
            else if (title == @"Moves" || title == @"Favorite Moves")
            {
                MoveCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

                if (cell == nil) {
                    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"MoveCell" owner:self options:nil];

                    for (id currentObject in objects) {
                        if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                            cell = (MoveCell *)currentObject;

                            break;
                        }
                    }
                }

            }

            cell.imageView.image = [UIImage imageNamed:[[self.theData objectAtIndex:indexPath.row] objectForKey:@"image"]];
            cell.contentName.text = [[self.theData objectAtIndex:indexPath.row] objectForKey:@"name"];

            return cell;

    }

Любая помощь будет отличной! Я'Я уверен, что мои часы, уставившиеся на экран, заставили меня пропустить что-то простое. Спасибо!