Ios 如何将闭包中的数据传递到另一个场景
这是我在swift中的第一个应用程序。我正在使用Alamofire进行HTTP请求。来自Android,我知道在从一个屏幕导航到另一个屏幕时,可以将序列化对象附加到navcontroller操作 我希望能够在viewmodel订阅之后执行segue,并将结果令牌附加到segue,因为我将在下一个屏幕上使用它进行验证 我已经试过了,但是没有用 我怎样才能在斯威夫特做到这一点Ios 如何将闭包中的数据传递到另一个场景,ios,objective-c,swift,alamofire,rx-swift,Ios,Objective C,Swift,Alamofire,Rx Swift,这是我在swift中的第一个应用程序。我正在使用Alamofire进行HTTP请求。来自Android,我知道在从一个屏幕导航到另一个屏幕时,可以将序列化对象附加到navcontroller操作 我希望能够在viewmodel订阅之后执行segue,并将结果令牌附加到segue,因为我将在下一个屏幕上使用它进行验证 我已经试过了,但是没有用 我怎样才能在斯威夫特做到这一点 //MARK: Register user @IBAction func registerUser(_ s
//MARK: Register user
@IBAction func registerUser(_ sender: Any) {
let fullName = firstNameTF.text! + " " + lastNameTF.text!
let email = emailTF.text
let password = passwordTF.text
let phone = phoneNumberTF.text
let country = countryDropDown.text
let user = User(name: fullName, email: email, password: password, country: country, phone: phone, token: nil)
var tk = ""{
didSet{
token = tk
}
}
authViewModel.registerUser(user: user).subscribe(onNext: { (AuthResponse) in
print("messaage \(String(describing: AuthResponse.message))")
self.tokens = AuthResponse.token
self.performSegue(withIdentifier: "gotoVerification", sender: self)
}, onError: { (Error) in
print("Error: \(Error.localizedDescription)")
}, onCompleted: nil) {
}.disposed(by: disposeBag)
print("token \(token)")
// AF.request(url, method: .post, parameters: user, encoder: JSONParameterEncoder.default).responseDecodable(of:AuthResponse.self){response in
//
// response.map { (AuthResponse) in
// print("messaage \(String(describing: AuthResponse.message))")
// }
//
// print("user: \(user)")
// print("response \(String(describing: response))")
// }
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? UserVerification{
//
vc.tokens = token
print("token \(token)")
}
}
您可以将令牌作为发件人传递:
self.performSegue(withIdentifier: "gotoVerification", sender: AuthResponse.token)
然后:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? UserVerification, let token = sender as? String {
vc.tokens = token
print("token \(token)")
}
}
您是否在代码中的任何地方调用了
performsgue(标识符:sender:)
?在authviewmodel闭包中调用了