例如,我control-drag
我的第一个视图控制器上的登录按钮到第二个视图控制器。现在我想要这个结果:
当我点击login
时,如果它符合某些要求(例如,如果1+1 != 2
,它将进入第二个视图控制器)。否则它将保留在第一个视图控制器上。
这是我的代码的一部分:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.identifier
{
case .Some("LoginSegue"):
// if it satifies some requirement, it will enter anther segue, otherwise it says on the original one
if (1+1)==2
{
}
else
{
let loginViewController = segue.destinationViewController as! RegularLogin
if let temp_username = usernameText!.text
{
loginViewController.username = temp_username
if let temp_password = passwordText!.text
{
loginViewController.password = temp_password
}
}
}
但是,即使它不符合要求,当我点击login
时,它仍会进入第二个视图控制器。如何解决?
答案 0 :(得分:1)
问题是prepareForSegue
是错误的方法;太晚了。要防止此segue触发,请实施shouldPerformSegueWithIdentifier:sender:
。这是您检查segue和情况的机会,并返回true
或false
以允许或拒绝segue继续前进。