0

我试图UIButton通过使用来保存 a 的状态encodeWithCoder:

- (void)encodeWithCoder:(NSCoder *)encoder
{  
  [coder encodeObject:self.button1 forKey:@"button1"];
}

我的initWithCoder:样子是这样的:

-(void) initWithCoder:(NSCoder*)decoder
{
  self.button1 = [coder decodeObjectForKey:@"button1"];
}

我保存了button1颜色、方向、角度等的状态。我可以用它来恢复它,initwithCoder;但是当我点击按钮时它没有响应。外观已恢复,但IBAction不再调用。

4

1 回答 1

1

如果您手动创建/恢复按钮,那么您将取消 InterfaceBuilder/NIB 加载为您执行的自动设置。

您需要将目标操作显式添加到按钮。您的示例代码中也有一些语法错误。

-(void) initWithCoder:(NSCoder*)decoder
{
  self.button1 = [coder decodeObjectForKey:@"button1"];
  [self.button1 addTarget:self action:@selector(yourIBActionMethod:) forControlEvents:UIControlEventTouchUpInside];
}
于 2012-09-10T02:00:31.127 回答