ios - 弹出 VC 时 Google 登录按钮不起作用

标签 ios swift uinavigationcontroller google-signin

我的导航 Controller 中有两个 VC - SignInVCSignUpVC

两者都包含自定义 Google 登录按钮。

当应用程序启动时,SignInVC 首先出现。当我按下 SignUpVC 并按以下方式返回 SignInVC 时

_ = self.navigationController?.popViewController(animated: true)

我无法使用按钮登录,因为以下原因

Warning: Attempt to present SFSafariViewController: 0x157d47140 on TestProject.SignUpViewController: 0x157d2f3b0 whose view is not in the window hierarchy

控制台中显示错误。

值得一提的是,我还有 FB 登录按钮,它适用于两个 View Controller 。此外,无论在导航中来回,SignUpVC 中的按钮始终有效

这是 Google 登录特有的内容吗?

如何解决?

最佳答案

这是因为在 ViewDidLoad() 方法中设置了委托(delegate),当用户返回导航堆栈中的上一个 Controller 时不会调用该方法。

这个

override func viewWillAppear(_ animated: Bool) {

    GIDSignIn.sharedInstance().uiDelegate = self
    GoogleManager.shared.delegate = self
}

解决了问题。

关于ios - 弹出 VC 时 Google 登录按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41895578/

相关文章:

iphone - 将 View 添加到 uinavigationcontroller 后将 View 大小调整到正确的高度

json - 在 iOS 7 下尝试使用 SwiftyJSON 解析 JSON 数据时出现未知类型

iPhone pushViewController 保留导航栏的右侧部分

ios - 使用 xcodebuild 偶尔会看到构建错误

ios - 如果 iOS 应用程序转移到另一个用户帐户,那么它的 url 会被更改吗?

ios - 无法识别的选择器发送到 Swift 中的实例?

swift - 如何在 AVAudioEngine 的点击中使用 AVAudioNodeTapBlock。

ios - 当 View Controller 弹出或插入导航 Controller 堆栈时如何获得通知

iphone - 何时捕获 UILabel 的高度?

ios - 如何更改动画 UIImage 的持续时间?