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
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:

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
}
}
}
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.