我尝试使用UIButton
encodeWithCoder:
的状态
- (void)encodeWithCoder:(NSCoder *)encoder
{
[coder encodeObject:self.button1 forKey:@"button1"];
}
我的initWithCoder:
看起来像这样:
-(void) initWithCoder:(NSCoder*)decoder
{
self.button1 = [coder decodeObjectForKey:@"button1"];
}
使用button1
我保存颜色,方向,角度等状态。我可以使用initwithCoder;
恢复它,但是当我点按按钮时它没有响应。外观已恢复,但不再调用IBAction
。
答案 0 :(得分:1)
如果您手动创建/恢复按钮,那么您将取消InterfaceBuilder / NIB加载为您执行的自动设置。
您需要明确地将目标操作添加到按钮。 您的示例代码中也存在一些语法错误。
-(void) initWithCoder:(NSCoder*)decoder
{
self.button1 = [coder decodeObjectForKey:@"button1"];
[self.button1 addTarget:self action:@selector(yourIBActionMethod:) forControlEvents:UIControlEventTouchUpInside];
}