我正在关注一个在线课程,我正在构建的应用基本上是Instagram的减少版本,您可以在左侧看到我有登录视图,右手边我有注册的观点。Segue在单独的按钮上点击执行
非常直接的权利,现在我创建了一个Seque
从按钮Register
的登录页面,当按下您的注册视图(右一个),这按预期工作,但如果我在登录页面,点击注册,它的错误不管是什么原因,我显示错误消息,但之后直接就是执行Seque
到即使我从来没有按下register
这是我的故事板的注册画面:
这是位于左视图
@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
}
}
你可以显示'displayAlert'的代码吗?你说“出于任何原因的错误”;除了文本字段是空的还是您在这一点上的所有内容之外还有其他任何检查吗? – Paulw11
@ Paulw11刚刚添加它,经过一番更多的调查。 –
您不需要关闭操作中的警报视图控制器。当用户选择一个动作时,警报控制器将被自动解除。由于您正在调用'dismissViewController',您将返回上一个视图控制器 – Paulw11