У меня есть xib-файл с небольшим UIView
, который, в свою очередь, содержит несколько ярлыков.Теперь я пытаюсь загрузить этот UIView
в существующий UIViewController
и изменить один из текстов меток.Причина, по которой я хочу сделать это таким образом, заключается в том, что UIView
будет повторно использоваться с различными текстами меток, поэтому я подумал, что лучше создать нестандартный класс и загрузить его из xib.
Я пробовал несколько способов его загрузки и успешно отобразил его на моем viewcontroller.Проблема в том, что когда я пытаюсь на самом деле связать IBOutlet
в Интерфейсном Разработчике и получить к нему доступ, мое приложение вылетает.
Я создал собственный класс UIView
, который выглядит следующим образом:
CoverPanel.h
@interface CoverPanel : UIView {
IBOutlet UILabel *headline;
}
@property (nonatomic, retain) IBOutlet UILabel *headline;
@end
CoverPanel.m
@implementation CoverPanel
@synthesize headline;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// Initialization code.
//
self = [[[NSBundle mainBundle] loadNibNamed:@"CoverPanel" owner:self options:nil] objectAtIndex:0];
}
return self;
}
В CoverPanel.xib
я связал UILabel
до заголовка.В моем viewcontroller вот как я создаю экземпляр CoverPanel
, и вот где он падает:
CoverPanel *panelView = [[CoverPanel alloc] initWithFrame:CGRectMake(0,0,300,100)];
Пока все хорошо.Он отображает UIView
в точности так, как он выложен в .xib.Но как только я пытаюсь изменить headline.text
следующим образом:
panelView.headline.text = @"Test";
происходит сбой с этой ошибкой: Завершение работы приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '- [заголовок UIView]: нераспознанный селектор отправлен на экземпляр 0x5c22b00 '
Это может быть что-то крошечное, которое я пропускаю, но это до сих пор сводит меня с ума в течение многих часов.У кого-нибудь есть идеи?