ios - 无法执行 segue 退出

标签 ios iphone swift xcode

我有一个负责对用户进行身份验证的 View Controller 。当用户登录后,我想回到父 View Controller 。正在关注this指南,我已经创建了一个从 auth View Controller 到它的导出的 segue。当我尝试在代码中调用它时,没有任何反应。

这是我的代码:

import UIKit

import Firebase
import FirebaseAuth
import GoogleSignIn

class AuthVC: UIViewController, GIDSignInUIDelegate {

    @IBAction func unwindAuth(sender: UIStoryboardSegue) {
        print("'unwindAuth' called")
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        GIDSignIn.sharedInstance().uiDelegate = self

        FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
            if FIRAuth.auth()?.currentUser != nil {

                print(self.shouldPerformSegue(withIdentifier: "unwindSegue", sender: nil))

                self.performSegue(withIdentifier: "unwindAuthSegue", sender: nil)

            }
        }
    }
}

单击登录按钮后,我在控制台中从 self.shouldPerformSegue 得到 true,但没有别的(没有错误,也没有任何反应)。

我使用的是 Xcode 8.3 版测试版 (8W109m)。

这几天我一直在寻找解决方案。

免责声明:我是 Xcode 的新手,但我已经编程近 10 年了。不过,我没有接受过正规培训。

最佳答案

unwind segue action 必须放置在您要返回到的 View Controller 上,而不是您要离开的 View Controller 上。

如果你想传回数据,那么你可以使用委托(delegate)

Passing data back from view controllers Xcode

关于ios - 无法执行 segue 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042966/

相关文章:

ios - 使用 IQKeyboardManagerSwift 不显示下一个/上一个按钮

ios - 如何在不同的 iphone/ipad 屏幕尺寸下预览 Main.storyboard?

iphone - 等待围栏: failed to receive reply: 10004003 error - UIAlert WITHOUT UITextField present

ios - 如何从 xcode 部署的应用程序反编译

ios - 我们在 iTunes Connect 中的什么地方提到了 iBeacon 支持?

ios - 拒绝访问具有相同 IAM、Cognito 和权限配置的新存储桶

ios - Swift:编辑模式,将 editButtonItem() 链接到 IBAction

iOS/Swift - 闭包/完成 block 和委托(delegate)/函数之间有什么区别?

javascript - iOS 通过 Javascript 触摸设备的视口(viewport) x/y 坐标

iOS 在 Storyboard上添加设计时文本