Я пишу приложение Parse и использую Parse LoginViewController и SignUpViewController. Я использовал SubclassConfigViewController в качестве модели из своей демо-версии LoginAndSignUp. Как они говорят в своей документации, я хочу проверить имя пользователя и пароль для разных вещей до начала signUp. Это должно происходить в функции делегата «signUpViewControllerShouldSignBeginSignUp»
Но он не вызывается, и приложение подписывает кого-либо. Он проверяет только, что адрес электронной почты находится в допустимом формате и что имя пользователя существует. Я положил println (Swift) в начале функции. Он никогда не печатает. Что я могу сделать, чтобы заставить эту функцию работать? «loginViewControllerShouldLogInUser» работает как ожидалось.Parse 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