swift - 未调用解析 SignUpViewController signUpViewControllerShouldSignBeginSignUp 委托(delegate)函数

标签 swift parse-platform

我正在编写一个 Parse 应用程序并使用 Parse LoginViewController 和 SignUpViewController。我一直在使用 SubclassConfigViewController 作为他们的 LoginAndSignUp 演示中的模型。正如他们在文档中所说,我想在注册开始之前检查各种用户名和密码。这应该发生在委托(delegate)函数“signUpViewControllerShouldSignBeginSignUp”
但是,它没有被调用并且该应用程序注册了任何人。它只检查电子邮件的格式是否有效以及用户名是否存在。我在函数的开头放了一个 println (Swift)。它从不打印。 我该怎么做才能强制运行此功能? “loginViewControllerShouldLogInUser”按预期运行。

这是我的代码:

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)
    }

}

最佳答案

logincontroller 有一个名为 signUpController 的属性,它是由 logincontroller 调用的 signupcontroller。

因此,如果您想检查用户做了什么(注册或取消或其他),您需要通过调用以下命令来设置登录 Controller 的注册 Controller 的委托(delegate):

loginViewController.signUpController?.delegate = self

希望对你有帮助

关于swift - 未调用解析 SignUpViewController signUpViewControllerShouldSignBeginSignUp 委托(delegate)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30038702/

相关文章:

ios - 重置应用内购买以进行测试?

multithreading - 对类中变量的线程安全访问

json - 在 Swift 中创建某种 JSON 数据结构

ios - Parse.com 阻止无法对类型 : (null) 进行比较查询

javascript - 如何上传个人资料图片来解析ionic框架

ios - 如何从 Parse 对象中删除一行?

ios - 如何展示真实的 Admob 广告而不是测试广告?

ios - 如何将容器应用程序附加到操作扩展调试线程?

javascript - Postman REST API 调用解析服务器在 Javascript 网站中不起作用

ios - 未调用handleWatchKitExtensionRequest 的问题?