我浏览了Apple“Your first iOS app”
的指南现在我有一个按钮,它没有在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]删除label(和textField);但我不明白如何用按钮做到这一点。有人可以帮忙吗?
答案 0 :(得分: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];
另请注意,您链接的教程说:
操作方法中的sender参数指的是发送操作消息的对象(在本教程中,发件人是按钮)。
因此,如果您想要在点击按钮时(changeGreeting:
内)删除按钮,那么您就不需要IBOutlet
,因为您已经在sender
中引用了该按钮{1}}参数:
- (IBAction)changeGreeting:(id)sender
{
UIButton *button = (UIButton *)sender;
// ...
[button removeFromSuperview];
// ...
}
答案 1 :(得分:0)
您需要像控制器IBAction
一样声明控制器中的按钮,这次将其声明为Outlet(IBoutlet
)..这样您将在代码中获得它的引用。
或者 ..您可以在Interface Builder中为按钮设置标签 ..
然后使用viewWithTag
:method