2013-04-30 2 views
0

У меня есть пользовательский видКак получить доступ к члену подкласса UIView

@interface Slip : UIView{ 

    UIButton *number1; 

} 

@property (nonatomic, assign) IBOutlet UIButton *number1; 
@end 

с файлом СИБ, то «Слип» является владельцем file's СИБ файла.

Я инициализации View в ViewController так:

self.slip1 = [[[NSBundle mainBundle]loadNibNamed:@"SlipNib" owner:self options:nil] objectAtIndex:0]; 
[self.slip1 setFrame:CGRectMake(0.0f, 0.0f, 307.0f, 322.0f)]; 
[self.slips addSubview:self.slip1]; 

теперь я хочу, чтобы получить доступ к члену Слип

[self.slip1.number1 setSelected:YES]; 

эта линия бросает исключение

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ViewController 0x755e9d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key number1.' 

Как я могу получить доступ к члену (номер 1). У меня есть 12 из этих просмотров в моем ViewController и вам необходимо получить к ним доступ отдельно. Любая помощь очень ценится.

ответ

3

Похоже, что вы не подключили IBOutlet к кнопке в Interface Builder. Вы должны щелкнуть правой кнопкой мыши и перетащить из «Владелец файлов» на кнопку, а затем выбрать кнопку1.

Это проблема, связанная с неправильным подключением IBOutlet к кнопке, поскольку наконечники используют KVC под капотом. Возможно, вам также понадобится подключить корневой вид ниба к IBOutlet в вашем подклассе UIView.

Заканчивать мой другой пост здесь, если вам нужна больше информации о том, как загрузить UIView подклассов наконечников

UIView is not showing up in UIScrollView

+0

, кажется, как исключение, когда я подключить кнопку с IBOutlet. У кого-нибудь есть идея, почему? – dan

+0

Соединение не выполняется во время выполнения, оно выполняется в файле .nib перед компиляцией проекта. Сбой происходит, когда вы пытаетесь получить доступ к неподключенной кнопке, подключили ли вы IBOutlet к кнопке в наконечнике, как описано выше? Хороший способ сказать, это посмотреть в свой файл 'Slip.h' слева от того, где объявлено свойство IBOutlet. Будет небольшой тонкий серый круг, и если он правильно подключен, круг будет заполнен. Если это не так, значит, вы не подключили кнопку правильно –

+0

Я должен был сказать вам, я уже удалил строку, теперь она сбой на строке self.slip1 = .... Я понятия не имею, почему, как будто какой-то лепрекон меняет свой код, когда я получаю кофе. Дело в том, что, как только я подключаю IBOutlet к Button, я получаю исключение, спасибо за вашу помощь. – dan

Смежные вопросы