Привязка IBOutlets при создании экземпляра UIView с использованием файла NIB - PullRequest
0 голосов
/ 20 мая 2011

Я создал объект UIView, используя содержимое файла NIB, например:

self.results = [[[NSBundle mainBundle] loadNibNamed:@"ResultsView" owner:self options:nil] lastObject];
self.results.frame = CGRectMake(0, 0, 320, 500);

Но self.results является подклассом UIView на самом деле:

@interface GameResultsView : UIView {
  UILabel *title;
}
@property (nonatomic, retain) IBOutlet UILabel *title;

@end

Я связал атрибут title, определенный в GameResults, с объектом UILabel через Interface Builder.Но во время выполнения приложение останавливается с сообщением SIGABRT, когда представлению назначено self.results:

-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4c2f780
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4c2f780'

Кажется, что метка вообще не может быть подключена.Как правильно это сделать (если есть)?Моя цель здесь - добавить этот пользовательский вид к объекту UIScrollView.

Спасибо!

ОБНОВЛЕНИЕ: Я использую Xcode 4

1 Ответ

1 голос
/ 23 мая 2011

Вы можете загрузить перо следующим образом:

UINib * nib = [UINib nibWithNibName:aName bundle:nil];

NSArray * nibContent = [nib instantiateWithOwner:self options:nil];

for (id aView in nibContent) {
    if ([aView isKindOfClass:[GameResultsView class]]) {
         return aView;
    }
}

Это вернет первый случай GameResultsView.

...