Возникли проблемы при загрузке пользовательского представления из xib в другой xib

Извиняюсь, потому что вижу, что люди задавали такие вопросы раньше. Однако мне не очень повезло, следуя инструкциям. Я заинтересован в создании пользовательского представления с помощью файла XIB и его повторном использовании в файле XIB другого контроллера представления.

Существующие сообщения:

Использование объекта XIB внутри другого XIB

Как использовать xib и подкласс UIView вместе?

Я уже:

  • Создан пользовательский файл xib (назовем его CustomView.xib) и соответствующие файлы классов.h и.m
  • Установите для владельца файла xib-файла значение CustomView.
  • Создан UIView верхнего уровня с другими представлениями как дети (UILabel's и т. Д.)
    • Обратите внимание, что это дочерний UIView, который также является пользовательским представлением, написанным в коде
  • Проводной IBOutlets
  • Создан файл ViewController.xib
  • Добавлен UIView, установите класс на CustomView, а также подключите его

Это приводит к тому, что при сборке приложения отображается пустое представление.

Затем я попробовал то, что было сказано в одной из приведенных выше публикаций: переопределить метод initWithDecoder в CustomView и добавил следующее:

NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
UIView *mainView = [subviewArray objectAtIndex:0];
[self addSubview:mainView];

Это, к сожалению, привело к следующей ошибке:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
'[<UIView 0x548ff00> setValue:forUndefinedKey:]:

Я думал, что это может быть потому, что я не установил представление верхнего уровня в CustomView.xib для класса CustomView. Затем я изменил его на CustomView, и затем все пошло в бесконечную рекурсию. Это имеет смысл, поскольку он просто перезагружает себя снова и снова.

Не уверен, что я пропустил из этих предыдущих постов, но я был бы признателен за любые рекомендации! Спасибо!

1 ответ

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
'[<UIView 0x548ff00> setValue:forUndefinedKey:]:

Причина вышеизложенного error обычно происходит из-за сбоя соединений в Interface Builder, это UIViewController объект с соответствующими объектами в классе реализации. Пожалуйста, проверьте все соединения в Interface Builder, Также проверьте владельца файла в xib файл.

Я надеюсь, что это решит вашу проблему.

Другие вопросы по тегам