我正在为我正在开发的应用程序提供两个单独的注册和登录页面。登录页面效果很好,但是我在注册页面遇到了一个奇怪的问题。注册过程有3个单独的ViewControllers,第一个包含名称,电子邮件,用户名和密码文本字段。然后,您可以单击另一个ViewController,在其中添加图片,然后使用ViewController显示所有信息并具有“确认”按钮。这个按钮然后调用我的signUp方法,当我尝试将它传递给String变量时,我收到NameTF.text为nil的错误。我已经尝试定期传递TextFields数据以及使用:
@IBAction func FirstNameTF2(sender: UITextField) {
firstName = sender.text!
}
编辑:完整的当前代码
class SignUpViewController: UIViewController {
// Sign Up Page 1
@IBOutlet weak var FirstNameTF: UITextField!
@IBOutlet weak var LastNameTF: UITextField!
@IBOutlet weak var EmailTF: UITextField!
@IBOutlet weak var UserNameTF: UITextField!
//Sign Up Page 2
@IBOutlet weak var PasswordTF: UITextField!
// Bday, gender coming
//Sign Up Page 3
// Profile picture coming
func signUp(){
let user = PFUser()
let firstName = FirstNameTF.text
let lastName = LastNameTF.text
let fullName = firstName! + " " + lastName!
user.username = UserNameTF.text
user.password = PasswordTF.text
user.email = EmailTF.text
user["name"] = fullName
user.signUpInBackgroundWithBlock {
(succeeded: Bool, error: NSError?) -> Void in
if let error = error {
//let errorString = error.userInfo["error"] as? NSString
// Show the errorString somewhere and let the user try again.
} else {
// Hooray! Let them use the app now.
}
}
}
@IBAction func SignUpButton(sender: AnyObject) {
}
}
非常感谢任何帮助。
答案 0 :(得分:0)
您似乎在IB中为3个视图控制器使用了相同的类。如果是这种情况,您必须记住,您将拥有3个单独且独立的类实例。一个实例上的出口不会转移到另一个实例。因此,例如,如果firstNameTF连接到第一页并接收值,则此值仅存在于该实例中,并且在显示时不可访问第2页或第3页。