导航控制器中有两个VC - SignInVC
和SignUpVC
。
两者都包含自定义谷歌登录按钮。
当应用启动时,SignInVC首先出现。当我按下SignUpVC并以下列方式返回SignInVC时
_ = self.navigationController?.popViewController(animated: true)
我无法使用按钮登录,因为以下
警告:尝试显示SFSafariViewController:0x157d47140 TestProject.SignUpViewController:0x157d2f3b0,其视图不在 窗口层次结构
错误显示在控制台中。
值得一提的是,我还有FB登录按钮,它可以在两个视图控制器中工作。此外,SignUpVC中的按钮始终有效,无论在导航中来回移动
这是Google登录的特定内容吗?
如何解决?
答案 0 :(得分:0)
因为委托是在ViewDidLoad()方法中设置的,当用户返回到导航堆栈中的前一个控制器时,该方法不会被调用。
此
override func viewWillAppear(_ animated: Bool) {
GIDSignIn.sharedInstance().uiDelegate = self
GoogleManager.shared.delegate = self
}
解决了这个问题。