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 参数是指正在发送 action 消息的对象(在本教程中,sender 是按钮)

因此,如果您想在点击按钮(内部changeGreeting:)时将其删除,则不需要,IBOutlet因为您已经在sender参数中引用了该按钮:

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

您需要像之前一样在控制器中声明按钮,IBAction这次将其声明为 Outlet( IBoutlet).. 这样您将在代码中获得它的引用..

或者..您可以在Interface Builder中为按钮设置标签..

然后使用viewWithTag: 方法在代码中检索

于 2012-03-06T10:51:18.000 回答