1

通常、UIButton を非表示にすることは難しくありませんが、IBOutlet ではなく IBAction に設定しています。ボタンを押すとテキストがポップアップするため、これが必要ですが、ボタンを非表示にしたいのです。解決策は何ですか?

4

1 に答える 1

0

IBAction を次のように宣言した可能性があります。

- (IBAction)myButtonAction;

そのはず:

- (IBAction)myButtonAction:(id)sender;

メソッドでできるから

- (IBAction)myButtonAction:(id)sender
{
    if([sender respondsToSelector:@selector(setHidden:)])
        [sender setHidden:YES];
}

すべての IBActions は、送信者の受信を関数としてサポートできます。ただし、別の UI 要素がその関数を呼び出すと、それも非表示になります。また、上記の方法ではボタンを非表示に戻すことはできません。そうする必要がある場合は、おそらく IBOutlet を使用したほうがよいでしょう。5.0 以降では、ボタンをweak保持しないキーワードを使用できます。オブジェクトが破棄されると自動的に nil になります。4.x では、viewDidUnload で nil に設定することを忘れないでください。

于 2012-07-30T19:01:42.220 に答える