Повторное использование перьев в нескольких UIViewControllers - PullRequest
3 голосов
/ 18 апреля 2010

Я создал несколько пользовательских UITableViewCells в nib-файле и хотел бы использовать его для нескольких UIViewControllers.

Может кто-нибудь сказать мне лучший способ сделать это? Похоже, мои ограниченные знания о загрузке перьев указывают на то, что в Interface Builder необходимо указать один класс владельца.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2010

Просто сделай это; нет никаких реальных препятствий. Что касается класса для владельца файла, то пока ключи, к которым вы привязываете перо, существуют в любом объекте, в котором вы хотите использовать перо, все будет в порядке.

1 голос
/ 18 апреля 2010

Вы можете создать экземпляр класса UIViewController программно с помощью initWithNibName:bundle: и указать один и тот же кончик для нескольких контроллеров. Например, я сейчас создаю игру, в которой есть класс GameController, определяющий основную игровую логику. GameController имеет связанный файл GameController.xib, который загружается в пользовательский инициализатор:

- (id)initWithOptions:(NSDictionary *)gameOptions
{    
    if (self = [super initWithNibName:@"GameController" bundle:nil])
    {
        // code here
    }
    return self;
}

У меня есть несколько разных типов игр: одноранговая, локальная и онлайн. Логика игры та же, но реализация связи немного отличается, поэтому каждый из них является подклассом GameController. В зависимости от того, как используется приложение, оно создаст другой контроллер:

local = [[LocalGameController alloc] initWithOptions:options];
online = [[OnlineGameController alloc] initWithOptions:options];

Однако вы можете видеть, что, поскольку они оба простираются на GameController, оба они будут инициализированы с GameController.xib в качестве своего вида. В этом случае GameController будет вашим единственным владельцем файла.

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