Возникли проблемы при загрузке пользовательского представления из 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
файл.
Я надеюсь, что это решит вашу проблему.