Wiele niestandardowych komórek ładowanych dynamicznie do pojedynczego widoku tabeli

Mam problem z częścią mojego kodu. Jestem całkiem pewien, że istnieje bardzo proste rozwiązanie, po prostu nie mogę tego zobaczyć! Zasadniczo używam pojedynczej klasy tableview do wyświetlania różnych danych (treści, elementów, ruchów). Zamiast mieć 3 różne kontrolery widoku tabeli, mam taki, który śledzi, która komórka jest puknięta i pokazuje odpowiednie dane. Wszystko działa naprawdę dobrze! Używam niestandardowych klas komórek z oddzielnym plikiem nib, więc muszę poprawnie zaimplementować instrukcję if (lub instrukcję switch), która sprawdza, która komórka została dotknięta (self.title), a następnie na jej podstawie utworzyć komórkę niestandardową.

Oczywiście problem mam z zakresu, cell.imageView nie ma pojęcia, co odwołuje się, ponieważ jest poza zakresem, gdy jest w instrukcji if.

Próbowałem użyć

id cell;

Dostaję te same błędy. W jaki sposób mogę to osiągnąć, aby każdy „tytuł” ​​używał innej komórki niestandardowej?

 - (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;

    }

Każda pomoc byłaby świetna! Jestem pewien, że moje godziny gapienia się w ekran sprawiły, że przegapiłem coś prostego. Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion