Perform segue after Login successful in Storyboards

后端 未结 3 1633
梦如初夏
梦如初夏 2020-12-03 20:51

I have 2 UITextFields, one of them for Login and the another for the Password.

Only if the Login is \"succesful\", I want to perform the Segue

相关标签:
3条回答
  • 2020-12-03 21:02

    You need to drag the segue from the overall UIViewController to the next UIViewController, i.e. you shouldn't specifically connect the UIButton (or any IBOutlet for that matter) to the next UIViewController if the transition's conditional.

    Like so:

    enter image description here

    0 讨论(0)
  • 2020-12-03 21:07

    Swift 4 You can still link UIButton to the View Controller and create a Segue. If your login is successful then invoke self.performSegue within your closure. Something like this...

    @IBAction func loginButtonPressed(_ sender: AnyObject) {
            authenticateUser(email: email.text!, password: password.text!)
    }
    
    func authenticateUser(email: String, password: String){
            # Building your loginUrl goes here
    
            Alamofire.request(loginUrl!,
                              method: .post,
                              parameters: nil,
                              encoding: JSONEncoding.default,
                              headers: headers)
                .validate()
                .responseJSON { (response:DataResponse<Any>) in
                    switch(response.result) {
                    case .success(_):
    
                        let apiResponse : JSON = JSON(response.result.value!)
    
                        print("Now Performing Segue on IBAction Pressed")
                        self.performSegue(withIdentifier: "goToDashboard", sender: self)
                       break
    
                    case .failure(_):
                        print(response.result.error)
                        break
                    }
                }
        }
    
    0 讨论(0)
  • 2020-12-03 21:12

    You are using the wrong logical operator.

    User &&instead of & inside your if statement.

    For better understand of the difference between the two I recommend you to read this other stack overflow answer.

    0 讨论(0)
提交回复
热议问题