用一个按钮隐藏多个按钮单击Objective C

时间:2015-02-26 12:42:38

标签: ios objective-c xcode uibutton ibaction

当我按下ViewController上的一个按钮时,我试图隐藏两个按钮。我似乎只能隐藏我点击的按钮,但使用[sender setHidden:YES];。我有的按钮:

- (IBAction)Button1:(UIButton*)sender;

- (IBAction)Button2:(UIButton*)sender;

我似乎无法在Button1中使用Button2.hidden = YES。有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:2)

您应该在viewController中创建button属性,并使用它来隐藏按钮:

@interface ViewController ()

  @property (nonatomic, strong) IBOutlet UIButton* button1;
  @property (nonatomic, strong) IBOutlet UIButton* button2;

- (IBAction)action1:(id)sender;
- (IBAction)action2:(id)sender;

@end

在行动中:

- (void)setButtonsHidden:(BOOL)hidden
{
   _button1.hidden = hidden;
   _button2.hidden = hidden;
}

#pragma mark Actions
- (IBAction)action1:(id)sender
{
    [self setButtonsHidden:YES];
}

- (IBAction)action2:(id)sender
{
   [self setButtonsHidden:YES];
}

您还可以使用NSArray存储所有按钮引用:

@interface ViewController ()

   @property (nonatomic, strong) IBOutletCollection(UIButton) NSArray* allButtons;
   <.....>

在setButtonsHidden中:方法:

- (void)setButtonsHidden:(BOOL)hidden
{
    [_allButtons enumerateObjectsUsingBlock:^(UIButton* obj, NSUInteger idx, BOOL *stop) {
    obj.hidden = hidden;
    }];
 }

答案 1 :(得分:1)

Viewcontroller.h

@property (weak, nonatomic) IBOutlet UIButton *button1;
@property (weak, nonatomic) IBOutlet UIButton *button2;
- (IBAction)button1:(UIButton *)sender;
- (IBAction)button2:(UIButton *)sender;

Viewcontroller.m

- (IBAction)button1:(UIButton *)sender
{
    _button1.hidden = YES;
    _button2.hidden = YES;
}

- (IBAction)button2:(UIButton *)sender
{
    _button1.hidden = YES;
    _button2.hidden = YES;
}