Я хочу использовать CustomTableViewCell.xib в нескольких классах.Но владелец файла только один.Как мне решить проблему? - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу использовать CustomTableViewCell.xib в нескольких классах. Но владелец файла только один. Я не хочу клонировать CustomTableViewCell.xib в CustomTableViewCell2.xib. Как мне решить проблему?

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Если вы используете выходы или действия других ваших классов в файле nib, то вы можете собрать все это в суперкласс (который сам по себе будет подклассом того, от чего наследуются ваши множественные классы, предположительно, UITableViewController в этом case) и ваши другие классы наследуют от этого (и делают владельца файлов экземпляром суперкласса).

Затем вы переопределите эти методы по мере необходимости в каждом из ваших контроллеров табличного представления.

0 голосов
/ 26 января 2012

Подобная ситуация, которая могла бы использовать некоторую ясность. У меня есть 1 файл XIB, который содержит 1 представление (UITableViewCell), которое я хотел бы использовать с несколькими различными подклассами типа UITableViewCell.

Я создал подкласс UITableViewCell с именем ParentTableViewCell. Вот иници ...

- (id)init
{
    ParentTableViewCell *customCell = nil;
    NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"CustomTVCell" owner:self options:NULL];
    for(UIView *aView in nibContents) {
        if ([aView isKindOfClass:[UITableViewCell class]]) customCell = (ParentTableViewCell *)aView;
    }
    return customCell;
}

Как видите, я просто заглядываю в XIB и выбираю кастом UITableViewCell.

Теперь, если я подклассифицирую класс ParentTableViewCell как ChildTableViewCell, я могу загрузить ячейку в таблицу штрафа, но ни один из моих методов в ChildTableViewCell не доступен, потому что ячейка выглядит как ParentTableViewCell , Класс UITableViewCell в XIB установлен на ParentTableViewCell, и это, кажется, превосходит любые подклассы вниз по течению.

Идеи

...