0

当我按下 时,我的应用中有两个按钮(比如Btn1和) ,Btn2Btn1Btn2),可用于用户交互和执行操作。这没有问题。

现在的问题是,

我希望按钮恢复到开始时的默认状态(当我按下Btn1``Btn2启用用户交互并执行操作时)

任何帮助表示赞赏。

这是代码:

- (IBAction)Btn1:(id)sender;    
{
    // if the Btn1 pressed enable the Btn2
    if (...)
    {
        button.enabled = YES;   
    }
}

- (IBAction)Btn2:(id)sender;
{
    if (button.enabled == YES) 
        // do any action in here    
    } 
}
4

2 回答 2

0

您可以向视图控制器添加一个方便的方法resetButtonStates,并以两种方式调用它:

  1. -(void)viewWillAppear:(BOOL)animated
  2. 无论何时UIApplicationDidBecomeActiveNotification由您的应用发布。这是因为viewWillAppear:当您将应用程序置于前台时不会调用。使用 NSNotifcationCenter 注册此通知(有关更多信息,请参阅文档)。

您应该将按钮更新为resetButtonStates适当的状态(启用/禁用/等)。

于 2013-07-14T17:54:51.900 回答
0

在函数 viewWillAppear 中设置默认状态。

像这样的东西:

.h 头文件

@property (nonatomic, weak) IBOutlet UIButton *button1; // connect to the button in interface builder
@property (nonatomic, weak) IBOutlet UIButton *button2; // connect to the button in interface builder

-(IBAction)buttonPressed:(UIButton*)button; // set this as an action for both buttons

.m 文件

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated]
    [self defaultState];
}

-(IBAction)buttonPressed:(UIButton*)button;   
{
    if (button == self.button1) { // button 1 pressed        
       self.button2.enabled = YES;   
    } else if (button == self.button2) { // button 2 was pressed
       [self defaultState]; // go back to default state
    }
}

-(void)defaultState {  // your default state of the app
   self.button2.enabled = NO;
   // other stuff
}
于 2013-07-14T14:42:59.423 回答