0
我正在製作一系列註冊頁面,用戶首先會看到一個「使用Facebook創建帳戶」按鈕,將它們記錄下來,然後呈現給用戶他們的基本註冊頁面中充滿了空文本框。但是,我試圖使用從圖形請求收集的用戶值填充這些文本框中的一部分。
如何將Facebook值發送到Xcode 8中的下一個屏幕swift 3
這是第一個屏幕與註冊鍵:
import UIKit
import FBSDKLoginKit
class RegisterVC: UIViewController, FBSDKLoginButtonDelegate {
var fbLoginSuccess = false
var fbName:String!
var fbEmail:String!
override func viewDidLoad() {
super.viewDidLoad()
let loginButton = FBSDKLoginButton()
view.addSubview(loginButton)
loginButton.frame = CGRect(x: 82, y: 325, width: view.frame.width - 210, height: 59)
loginButton.delegate = self
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("Did log out of facebook")
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if error != nil {
print(error)
return
}
print("Successfully logged in")
FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "id, name, email"]).start {(connection, result, err) in
if err != nil {
print("Failed to start graph request", err)
return
} else {
guard let data = result as? [String:Any] else {return}
let fbEmail = data["email"]
let fbName = data["name"]
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as? CreateAccountVC
vc!.email.text = self.fbEmail
vc!.fullname.text = self.fbName
}
}
print(result)
}
performSegue(withIdentifier: "regSegue", sender: RegisterVC.self)
}
而這些都是在下一個屏幕上的文本框:
import UIKit
class CreateAccountVC: UIViewController {
@IBOutlet weak var fullname: UITextField!
@IBOutlet weak var username: UITextField!
@IBOutlet weak var age: UITextField!
@IBOutlet weak var email: UITextField!
@IBOutlet weak var verifyEmail: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var verifyPassword: UITextField!
所有上面的代碼給我看的註冊頁面,但文本框是空的,沒有填充Facebook數據。我不是一個偉大的編碼器,真的和幫助將是有用的。讓我知道如果你有任何解決方案!謝謝。
但將這些改變填充文本輸入框? – jmoney11944
不,還沒有。通過執行上述更改,我們確保將_data_正確傳播並可靠地傳遞給連續的「ViewController」。現在,我們有'string'數據,我們可以更新我們的textFields/labels等。做這件事的好地方是'-viewDidLoad',我們可以將'textField''text'屬性設置爲接收到'string'對象。 – ystack
在viewdidload中,我只需設置完整的name.text = fbName和電子郵件的相同,但它不會更改文本字段。有什麼建議做什麼? – jmoney11944