SWIFT:Push Segue取而代之的是产生一个模态

在我的故事板中,一个模式segue将用户带到login屏幕(从主屏幕)。 然后,我从注册屏幕添加了PUSH segue到embedded在导航控制器中的下一个屏幕(创buildconfiguration文件)(创buildconfiguration文件屏幕是包含“testing”button的屏幕)。

在这里输入图像说明

在这里输入图像说明

注册屏幕的工作正常。 但是,当用户input他们的凭证并点击“注册”时,它会把它们带到正确的屏幕上,但是使用模态轮询与推送轮询。 我不知道为什么会这样。

这是我的注册视图控制器代码。 任何帮助将不胜感激!

import UIKit import Parse class SignInViewController: UIViewController { @IBOutlet weak var usernameField: UITextField! @IBOutlet weak var passwordField: UITextField! @IBAction func signInButton(sender: AnyObject) { PFUser.logInWithUsernameInBackground(usernameField.text!, password:passwordField.text!) { (user: PFUser?, error: NSError?) -> Void in if user != nil { //self.performSegueWithIdentifier("loginUser", sender: self) self.usernameField.text = "" self.passwordField.text = "" } else { if let errorString = error?.userInfo["error"] as? String { self.displayAlert("Login Failed", message: errorString) } } } } @IBAction func signUpButton(sender: AnyObject) { if usernameField.text == "" || passwordField.text == "" { self.displayAlert("Missing Field(s)", message: "Username and password are required") } else { let user = PFUser() user.username = usernameField.text user.password = passwordField.text user.signUpInBackgroundWithBlock { (succeded, error) -> Void in if let error = error { if let errorString = error.userInfo["error"] as? String { self.displayAlert("Sign Up Failed", message: errorString) } } else { self.performSegueWithIdentifier("SignUpToCreate", sender: self) self.usernameField.text = "" self.passwordField.text = "" } } } } //Dismiss the sign in screen @IBAction func closeButton(sender: AnyObject) { self.dismissViewControllerAnimated(true, completion: nil) } override func viewDidLoad() { super.viewDidLoad() //Format the text fields textFieldUI() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } //Display alert function func displayAlert(title: String, message: String) { let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) self.presentViewController(alert, animated: true, completion: nil) } //Textfield UI func textFieldUI() { passwordField.leftView = UIView(frame: CGRectMake(0, 0, 8, 0)) passwordField.leftViewMode = .Always usernameField.leftView = UIView(frame: CGRectMake(0, 0, 8, 0)) usernameField.leftViewMode = .Always } } 

这不可能:

 Root --(modal)--> SignUp --(push)--> NavigationController<->Detail 

结构应该是这样的

 Root --(modal)--> NavigationController<->Signup --(push)--> Detail 

我认为你得到了错误的devise,因为你不想在注册控制器中显示导航栏。 在显示之前,可以通过设置视图控制器navigationBarHidden来防止这种情况发生。