class SigninViewController: UIViewController {
@IBOutlet weak var usernameTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
var signinAPIManager: SigninAPIManager?
override func viewDidLoad() {
super.viewDidLoad()
setupView()
setupData()
}
private func setupData() {
setupServices()
}
private func setupView() {
setupTextFields()
}
private func setupTextFields() {
let textFields = [usernameTextField, passwordTextField]
textFields.forEach{ $0?.delegate = self }
}
@IBAction func signinButton(_ sender: Any) {
signinAPIManager?.signin(optionalUsername: usernameTextField.text,
optionalPassword: passwordTextField.text)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "SigninCompletedIdentifier"{
if segue.destination is HomeTableViewController{
let vc = segue.destination as? HomeTableViewController
vc?.textUser = "asds"
}
}
}
}
}
extension SigninViewController: SigninAPIManagerDelegate {
func didSigninCompletion(user: User) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let secondController = storyboard.instantiateViewController(withIdentifier: "secondary") as! HomeTableViewController
secondController.textUser = user.username
performSegue(withIdentifier: "SigninCompletedIdentifier", sender: self)
}
}
我想将扩展SigninViewController中的
user.username
传递给带有标识符的导航器:“SigninCompletedIdentifier”最佳答案
请尝试先打印对象:
打印(“SignInApiManager Object =”,signinAPIManager)
您会发现它为零,因为您尚未分配SigninAPIManager的任何实例。
替换下面的代码行:
替换 var signinAPIManager:SigninAPIManager?带的 var signinAPIManager:SigninAPIManager = SigninAPIManager()
关于ios - 为什么不将值user.username传递给导航器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62378219/