基本上我想在函数(类SignUpPage.swift)中使用变量'userID'来将它称为HERE它在ViewController.swift类中。如何在类B中的类A的函数体内访问变量的值?
我曾试图使用户ID全局变量
ref.child( “用户”)子(这里).setValue。([userLN “名”:userFN, “姓”])也是,但这是不行的。 这里是整个代码:
class SignUpPage: UIViewController {
var ref: FIRDatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
ref = FIRDatabase.database().reference()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBAction func signUpButton(_ sender: Any) {
FIRAuth.auth()?.createUser(withEmail: emailField.text!, password: passwordField.text!, completion: { (user, error) in
if error != nil{
print(error!.localizedDescription)
}
我想在ViewController.swift类中使用这个变量(用户ID),这样我可以节省名字,姓氏,EMAILID和密码相同令牌下。
let userID = user!.uid
let userEmail = self.emailField.text!
let userPassword = self.passwordField.text!
self.ref.child("Users").child(userID).setValue(["User Email": userEmail, "User Password": userPassword])
})
}
}
ViewController.swift类
class ViewController: UIViewController {
var ref: FIRDatabaseReference!
var ID = String()
override func viewDidLoad() {
super.viewDidLoad()
ref = FIRDatabase.database().reference()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var fnField: UITextField!
@IBOutlet weak var lnField: UITextField!
@IBAction func nextButton(_ sender: Any) {
let userFN: String = fnField.text!
let userLN: String = lnField.text!
ref.child("Users").child(**HERE**).setValue(["First Name": userFN, "Last Name": userLN])
}
}
你是如何从注册的ViewController呈现视图控制器? –
看起来像'child()'接受一个字符串。 'userID'的类型是什么? –
@gkchristopher是啊,孩子()接受一个字符串 用户ID为String类型也 我遇到的问题是在访问它的类 –