我正在寫一個解析應用程序,並使用解析LoginViewController和SignUpViewController。我一直使用SubclassConfigViewController作爲他們的LoginAndSignUp演示模型。當他們在他們的文檔中討論時,我想在signUp開始之前檢查各種事情的用戶名和密碼。這應該發生在委託函數「signUpViewControllerShouldSignBeginSignUp」
但是,它沒有被調用,並且該應用程序簽署了任何人。它僅檢查電子郵件中的格式是否有效,並且存在用戶名。我在函數的開頭放了一個println(Swift)。它從不打印。 我能做些什麼來強制這個功能運行? 「loginViewControllerShouldLogInUser」按預期運行。解析SignUpViewController signUpViewControllerShouldSignBeginSignUp委託函數沒有被調用
這裏是我的代碼:
class LoginConfigViewController: UIViewController, PFLogInViewControllerDelegate, PFSignUpViewControllerDelegate
{
var loginViewController: LoginViewController! = LoginViewController()
var signUpViewController: SignUpViewController! = SignUpViewController()
override func viewWillAppear(animated: Bool)
{
if (PFUser.currentUser() == nil)
{
loginViewController.delegate = self
loginViewController.fields = PFLogInFields.UsernameAndPassword | PFLogInFields.LogInButton | PFLogInFields.SignUpButton | PFLogInFields.DismissButton
//signUpViewController.delegate = self;
signUpViewController.fields = PFSignUpFields.Default | PFSignUpFields.Additional | PFSignUpFields.DismissButton
loginViewController.signUpController = signUpViewController;
loginViewController.signUpController?.delegate = self
self.presentViewController(self.loginViewController, animated: false, completion: nil)
}
else
{
self.dismissViewControllerAnimated(false, completion: nil)
}
}
// MARK: - PFLogInViewControllerDelegate
func logInViewController(logInController: PFLogInViewController!, shouldLogInUser user: PFUser!, password: String!) -> Bool {
println("shouldLogIn...")
return true
}
func logInViewController(logInController: PFLogInViewController, shouldBeginLogInWithUsername username: String, password: String) -> Bool {
println("should login in \(username)")
return true
}
@IBAction func logInViewController(logInController: PFLogInViewController, didLogInUser user: PFUser) {
println("didLogInUser \(user.username)")
self.loginViewController.dismissViewControllerAnimated(false, completion: nil)
}
// Sent to the delegate when the log in screen is dismissed.
func logInViewControllerDidCancelLogin(logInController: PFLogInViewController!) {
println("User dismissed the logInViewController")
self.loginViewController.dismissViewControllerAnimated(false, completion: nil)
}
// MARK: - PFSignUpViewControllerDelegate
// Sent to the delegate to determine whether the sign up request should be submitted to the server.
func signUpViewControllerShouldBeginSignUp(signUpViewController: PFSignUpViewController!, info: NSDictionary) -> Bool {
println("signUpViewController::shouldBeginSignUp")
return true
}
// Sent to the delegate when a PFUser is signed up.
func signUpViewController(signUpViewController: PFSignUpViewController, didSignUpUser user: PFUser) {
println("didSignUpUser \(user.username)")
user.removeObjectForKey("additional")
self.signUpViewController.stopAI()
self.signUpViewController.dismissViewControllerAnimated(false, completion: nil)
self.loginViewController.dismissViewControllerAnimated(false, completion: nil)
}
// Sent to the delegate when the sign up attempt fails.
func signUpViewController(signUpViewController: PFSignUpViewController!, didFailtoSignUpWithError error: NSError) {
println("Failed to sign up...")
}
// Sent to the delegate when the sign up screen is dismissed.
func signUpViewControllerDidCancelSignUp(signUpViewController: PFSignUpViewController) {
println("User dismissed the signUpViewController")
signUpViewController.dismissViewControllerAnimated(false, completion: nil)
}
//MARK: -()
func logOutButtonTapAction(sender: AnyObject) {
PFUser.logOut()
self.dismissViewControllerAnimated(false, completion: nil)
}
}
謝謝你的提示。我現在確定了。我毫不懷疑它需要它。但是,「shouldBeginSignUp」函數仍未被調用。謝謝你的幫助。 – epaus
除了添加:「loginViewController.signUpController?.delegate = self」我刪除了:「signUpViewController.delegate = self」但這仍然沒有幫助。 shouldBeginSignUp仍然沒有被調用。 – epaus
@epaus你可以給我你的新代碼(編輯你的問題)? 在我測試的例子上,這工作 – siegy22