У меня есть собственный объект UIView
с nib
, который определяет макет представления/подсмотра. Мои выходы подключены, и когда я запускаю объект из initWithFrame:
, все в порядке.
Проблема, с которой я столкнулась, - это когда я использую IB для вставки UIView
в другой nib; появляется пользовательский UIView
, но ни одно из представленных в нем представлений - на самом деле их символы все не равны нулю. У меня очень минимальная реализация initWithCoder:
и awakeFromNib:
(только ведение журнала), и я понимаю, что, поскольку дескриптор десериализован, subviews должны быть хотя бы инициализированы во время процесса?
Единственный вывод, который я прихожу сам по себе, состоит в том, что происходит одна из двух вещей: либо мои ссылки на выходные данные являются коррумпированными/плохими, а не работают, или мое понимание процесса загрузки-из-нибы Я что-то пропустил.
Спасибо заранее!
Изменить: (Код отправлен для Nekto в соответствии с запросом... как вы увидите, он регистрируется, и thats it, heh.)
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
NSLog(@"ThumbnailGridView.initWithCoder frame= %f, %f", self.frame.size.width, self.frame.size.height);
}
return self;
}
- (void)awakeFromNib
{
NSLog(@"ThumbnailGridView:awakeFromNib");
}
Изменить 2: Nibs, контроллеры, subviews и т.д.
Nibs: У меня есть один наконечник, содержащий UIView. Этот UIView содержит единственный UIScrollView, который заполнен сеткой UIViews, которые определены в другом nib. (Примечание: эта часть работает нормально, так как заполнение выполняется программно и работает с вызовом initWithFrame:). Проблема здесь в том, что символ UIScrollView равен nil после initWithCoder: и awakeFromNib: оба вызываются, поэтому объекты просто добавляются к ничто и ничего не происходит. Если символ scrollview не был равен нулю, я уверен, что это сработает.
Контроллеры: есть два контроллера, которые используют это, один выполняется с initWithFrame: и работает отлично, а другой встраивает его в качестве ссылки на основе nib. (Как уже упоминалось в другом месте здесь, определение UIView в IB, установка настраиваемого класса.) Я прошел через код, и это представление - инициализируется правильно - только его подпункты "отсутствуют".
Помогает ли это дать более четкое представление о ситуации?