0

Viewaと aViewController.の2 つのクラスがあり、View次のようにボタンを作成します。

_button = [[UIButton alloc] initWithFrame:CGRectMake(50, 0, buttonImage.size.width, buttonImage.size.height)];
[_button setImage:buttonImage forState:UIControlStateNormal];
[_button setImage:[UIImage imageNamed:@"btn_learn_focus_pad"] forState:UIControlEventTouchUpInside];
[_button addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
[_someView addSubview:_button];

ViewControllerでビューをインスタンス化した後、次loadViewのようにセレクターを追加します。

[view.button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

セレクターは呼び出されていません。ボタンの位置にしようとしNSLogViewControllerところ、ゼロが出力されました。ARCがボタンを離していると思われます。_buttonただし、strongポインタ ( @property) です。だから、なぜこれが起こっているのか分かりません。

どうすればこれを回避できますか?

4

1 に答える 1

0

プロパティ合成によって生成された適切な getter/setter メソッドを利用していません。最初の行を次のように変更した場合:

self.button = [[UIButton alloc] initWithFrame:CGRectMake(50, 0, buttonImage.size.width, buttonImage.size.height)];

ポインタを適切に保持します

于 2012-06-04T20:44:03.897 に答える