微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS Google登录未显示在模态呈现的视图控制器上方

如何解决iOS Google登录未显示在模态呈现的视图控制器上方

我一直遵循directions的要求使Google Sign On在我的iPhone应用程序上正常工作。我正在使用XCode 11.5。我的iOS目标是iOS 12.1。

当您单击放置在视图控制器上的google登录按钮时,会弹出一个小的警告窗口,询问您是否要继续使用Google登录

问题在于使用模态显示的视图控制器上的Google登录按钮不会发生这种情况。相反,当我单击按钮时什么也没有发生。我看不到任何警报询问我是否要使用Google登录。我的模式表示代码如下:

        print("Not logged in found.")
        if(loginVC == nil) {
            let storyBoard = UIStoryboard(name: "Main",bundle: nil)
            loginVC = storyBoard.instantiateViewController(withIdentifier: "LoginVC") as! LoginViewController
            loginVC!.sessionTracker = sessionTracker! // some coredata stuff I use
            loginVC!.loginReceptionDelegate = logsVC! // view controller underneath this one
            loginVC!.modalPresentationStyle = UIModalPresentationStyle.fullScreen
        }

        dispatchQueue.main.asyncAfter(deadline: .Now() + 0.1) {
            self.navC!.present(self.loginVC!,animated: true,completion: nil)
        }

如果在视图控制器上的模式控制器下方放置一个Google登录按钮,那么当我单击“登录”按钮时,我会看到警报。

为什么它不能与模态呈现的视图控制器一起使用?

我已验证我可以在模态呈现的视图控制器上方看到用UIAlertController创建的警报,因此我认为Google pod代码甚至都没有尝试为用户进行登录流程(我的顶视图没有阻碍我自己创建的警报)。

这曾经起作用。大约一年前,我有一个与Google登录框架的4.x版本完全相同的项目,但是我购买了一台新的mac笔记本电脑,当我将项目克隆到新计算机上时,遇到了这个问题。我已经将他们的登录Pod升级到了5.x版本,但这并不能解决问题。

解决方法

将我的问题重复出现,因为我终于在堆栈溢出的其他地方找到了答案。

无论如何,问题在于我的模态呈现视图具有轻击手势识别器,这会干扰对Google按钮的点击。

tapGesture.cancelsTouchesInView = false

解决了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。