2016-06-11 73 views
0

我正在关注一个在线课程,我正在构建的应用基本上是Instagram的减少版本,您可以在左侧看到我有登录视图,右手边我有注册的观点。Segue在单独的按钮上点击执行

非常直接的权利,现在我创建了一个Seque从按钮Register的登录页面,当按下您的注册视图(右一个),这按预期工作,但如果我在登录页面,点击注册,它的错误不管是什么原因,我显示错误消息,但之后直接就是执行Seque到即使我从来没有按下register

这是我的故事板的注册画面:

enter image description here

这是位于左视图

@IBAction func btnSignIn(sender: AnyObject) { 

    if txtUsername.text == "" || txtPassword.text == "" { 

     displayAlert("Error", message: "Username and Password required!") 

    } 
} 

我有这个控制器内部没有其他的代码,这将导致Seque来初始化Sign In按钮后面我的代码。

如果有人可以告诉我如何能阻止这种Seque发生在Sign In点击,只有当我按Register我会很感激。

更新

经过进一步调查,这似乎是与我的警告框的问题我展示。如果我注释掉警告框并按登录,并让它出错但不显示任何内容,则单击注册,然后单击我登录到右侧的视图,单击登录并重新开始查看左侧,然后按Sign In显示警报框,当它关闭时,它似乎认为视图控制器显示在页面上当前页面的前一页,这很奇怪。这是我的报警功能:

func displayAlert(title: String, message: String) { // Display alert message to user. Passing in title and message which will be displayed. 

    if #available(iOS 8.0, *) { 
     let a = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert) 

     a.addAction((UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in 

      self.dismissViewControllerAnimated(true, completion: nil) 

     }))) 

     self.presentViewController(a, animated: true, completion: nil) 

    } else { 

     // Fallback on earlier versions 
    } 
} 
+0

你可以显示'displayAlert'的代码吗?你说“出于任何原因的错误”;除了文本字段是空的还是您在这一点上的所有内容之外还有其他任何检查吗? – Paulw11

+0

@ Paulw11刚刚添加它,经过一番更多的调查。 –

+1

您不需要关闭操作中的警报视图控制器。当用户选择一个动作时,警报控制器将被自动解除。由于您正在调用'dismissViewController',您将返回上一个视图控制器 – Paulw11

回答

2

您不需要关闭操作中的警报视图控制器。当用户选择一个动作时,警报控制器将被自动解除。

由于您致电dismissViewControllerAnimated您将回到上一个视图控制器。

0

上登录按钮点击右键,检查连接检查,可能是你复制粘贴这两个按钮,这样既登录的行动和注册按钮将相同。

+0

没有,从未复制和粘贴。我没有检查连接检查器,只是将事情发生了。 –