0

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は呼び出されなくなりました。

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 に答える