Swift performSegueWithIdentifier not working

后端 未结 8 1483
礼貌的吻别
礼貌的吻别 2020-12-01 04:13

I am trying to switch view controllers after a user successfully logs in to their account, but it is not working correctly. I cant use a segue directly because if the login

相关标签:
8条回答
  • 2020-12-01 04:58

    The segue identifier that you pass to performSegueWithIdentifier(_:sender:) must exactly match the ID you've given the segue in the storyboard. I assume that you have a segue between the login view controller and the success view controller, which is as it should be; if not, ctrl+drag from the first to the second view controller, then select the segue's icon in the storyboard and set its ID to Klikur. Don't perform the navigation on the button click, as one commenter said, because that defeats the main purpose of having segues, which is to give a visual indication of the application flow in the storyboard.

    EDIT: Here's the code for a login view controller:

    import UIKit
    
    class ViewController: UIViewController {
    
        @IBOutlet weak var usernameField: UITextField!
        @IBOutlet weak var passwordField: UITextField!
    
        @IBAction func attemptLogin(sender: AnyObject) {
            if !usernameField!.text!.isEmpty && !passwordField!.text!.isEmpty {
                performSegueWithIdentifier("Klikur", sender: self)
            }
        }
    
        override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            if "Klikur" == segue.identifier {
                // Nothing really to do here, since it won't be fired unless
                // shouldPerformSegueWithIdentifier() says it's ok. In a real app,
                // this is where you'd pass data to the success view controller.
            }
        }
    
    }
    

    And a screenshot of the segue properties that I'm talking about:

    0 讨论(0)
  • 2020-12-01 05:09
    DispatchQueue.main.async() {
        self.performSegue(withIdentifier: "GoToHomeFromSplash", sender: self)`  
    }
    
    0 讨论(0)
提交回复
热议问题