我想在某些条件下禁用按钮操作。为了更清楚,我正在开发一个登录页面,但我想禁用登录按钮操作。动作是我用drop& drag方式创建的segue。问题是当用户名和密码无效时,如何禁用该segue。或者可以通过这种方式完成?
如果不能,在这种情况下以编程方式执行segue最可接受的方式是什么?
答案 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