1

Apple の「初めての iOS アプリ」のガイドを確認しました

そして今、ViewControllerで宣言されていないボタンがあります:

@interface HelloWorldViewController : UIViewController <UITextFieldDelegate>
- (IBAction)changeGreeting:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *textField;
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (copy, nonatomic) NSString *userName;
@end

[label removeFromSuperview]; を使用して、ラベル (および textField) を削除できるようになりました。しかし、ボタンでそれを行う方法がわかりません。誰か助けてくれませんか?

4

2 に答える 2

1

IBOutletテキストフィールドとラベルの場合と同じように、ボタンにを追加する必要があります。

@property (weak, nonatomic) IBOutlet UITextField *textField;
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (weak, nonatomic) IBOutlet UIButton *button; // Don't forget to link to this from Interface Builder
// ...

次に、次を使用してボタンを削除できます。

[button removeFromSuperview];

また、リンクしたチュートリアルには次のように書かれていることに注意してください。

actionメソッドのsenderパラメーターは、アクションメッセージを送信しているオブジェクトを参照します(このチュートリアルでは、senderはボタンです)

したがって、ボタンがタップされたときに(内側で)ボタンを削除する場合は、パラメータにボタンへの参照がすでにchangeGreeting:あるため、ボタンは必要ありません。IBOutletsender

- (IBAction)changeGreeting:(id)sender
{
    UIButton *button = (UIButton *)sender;
    // ...
    [button removeFromSuperview];
    // ...
}
于 2012-03-06T10:50:16.350 に答える