Я пытался решить эту ошибку 2 дня подряд и, похоже, не могу найти проблему.
Я подклассифицировал стандартный ViewController примерно так:
@interface ToolbarVC : UIViewController {
IBOutlet UIButton* button1;
IBOutlet UIButton* button2;
IBOutlet UIButton* button3;
IBOutlet UIButton* button4;
}
@property(nonatomic, retain) IBOutlet UIButton* button1;
@property(nonatomic, retain) IBOutlet UIButton* button2;
@property(nonatomic, retain) IBOutlet UIButton* button3;
@property(nonatomic, retain) IBOutlet UIButton* button4;
-(IBAction) button1Pressed:(id)sender;
-(IBAction) button2Pressed:(id)sender;
-(IBAction) button3Pressed:(id)sender;
-(IBAction) button4Pressed:(id)sender;
@end
В конструкторе интерфейса я подключил все кнопки к владельцу файла, как обычно.
В инспекторе идентичности ToolbarVC в разделе «Идентификация класса» я изменил имя класса «Владелец файла» на «ToolbarVC».
В моем AppViewController я создаю экземпляр класса следующим образом:
ToolbarVC* tbvc = [[ToolbarVC alloc] init];
photoToolbarVC = tbvc; // this is my class variable
[self.view addSubview:tbvc.view];
ToolbarVC inits, и в его методе viewDidLoad правильно задаются имена и размеры кнопок.
Однако, если я пытаюсьпри нажатии на кнопки происходит сбой с EXC_BAD_ACCESS.ЕСЛИ я пытаюсь анимировать панель инструментов в виде, подобном этому:
[UIView beginAnimations:@"addToolbars" context:nil];
[UIView setAnimationDuration:kFadeDuration];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[photoToolbarVC.view setCenter:CGPointMake(512, 200)];
[UIView commitAnimations];
Это дает мне эту ошибку:
*** Завершение приложения из-за необработанного исключения «NSUnknownKeyException», причина: '[setValue: forUndefinedKey:]: этот класс не соответствует значению ключа, соответствующему кодированию для кнопки button4. '
Я искал два дня и пробовал несколько способов исправить это, включая initWithNibName: @ "ToolbarVC".
Что интересно, если я не анимирую его в представлении, оно отображается с кнопками, имеющими правильное имя и размер (это происходит в методе ToolbarVC viewDidLoad при его создании).Только когда я пытаюсь оживить его или нажать кнопку, он вылетает.