如何在某些条件下禁用按钮操作

时间:2015-11-25 14:08:37

标签: ios swift

我想在某些条件下禁用按钮操作。为了更清楚,我正在开发一个登录页面,但我想禁用登录按钮操作。动作是我用drop& drag方式创建的segue。问题是当用户名和密码无效时,如何禁用该segue。或者可以通过这种方式完成?

如果不能,在这种情况下以编程方式执行segue最可接受的方式是什么?

3 个答案:

答案 0 :(得分:1)

如果我了解您将登录按钮直接连接到下一个控制器。问题是你无法为segue添加逻辑。

你应该断开segue与按钮的连接(删除segue)并从loginController重新连接到nextController并添加segue的标识符(“ nextFlowId ”)。然后将操作添加到按钮( loginAction

示例:

   @IBAction func loginAction(sender: AnyObject) {
       if yourCondition {
           //message and return
           return
       }

       self.performSegueWithIdentifier("nextFlowId", sender: nil)
   }

答案 1 :(得分:0)

将此方法添加到viewcontroller。然后在返回YES后首先检查您的用户名和密码。

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {

}

或者我认为您可以添加登录按钮的内部操作。然后手动推送到viewcontroller

答案 2 :(得分:0)

来自Apple的UIKit框架参考:

  

<强> userInteractionEnabled

     

一个布尔值,用于确定是否忽略用户事件并从事件队列中删除。

     

讨论

     

设置为NO时,将忽略用于视图的用户事件(如触摸和键盘),并将其从事件队列中删除。设置为YES时,事件将正常传递到视图。此属性的默认值为YES。

UIButton从UIView继承此属性。所以你可以设置

aButton.userInteractionEnabled = false