Swift performSegue 未执行 [重复]

Posted

技术标签:

【中文标题】Swift performSegue 未执行 [重复]【英文标题】:Swift performSegue not executing [duplicate] 【发布时间】:2020-08-04 13:48:39 【问题描述】:

我正在尝试检查用户之前是否登录过,如果有,则将其发送到主屏幕。正在满足条件(正在执行打印)但未执行 segue。函数调用在 viewDidLoad() 中。

我对登录的用户使用完全相同的 segue 语句,它可以工作。

    func checkIfSignedInAlready() 
        //check if user has signed in already
        if UserDefaults.standard.string(forKey: "appleAuthorizedUserIdKey") != nil 
                // move to main view
            print("USER HAS SIGNED IN BEFORE")
            performSegue(withIdentifier: "LogIn", sender: nil)
        
    

【问题讨论】:

【参考方案1】:

更新 - 在 Apple Docs 中找到:

“当前视图控制器一定是从storyboard加载的。如果它的storyboard属性为nil,可能是因为你自己分配和初始化了view controller,这个方法会抛出异常。”

所以我将函数调用放在 viewDidAppear() 中,它可以工作,但由于某种原因以模态方式呈现。故事板中的“种类”设置为“显示”。对此有什么想法吗?

【讨论】:

以上是关于Swift performSegue 未执行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

没有 performSegue 的委托不会被调用 Swift 5

来自appDelegate performSegue的Swift 3在谷歌登录后无法正常工作

swift 4 中使用 performSegue 打开的关闭页面时,如何在视图控制器和 TableViewController 之间传递数据?

警报框未显示。 X 代码是跳过 Swift 中的警报框代码

当使用在swift 4中使用performSegue打开的dismiss页面时,如何在视图控制器和TableViewController之间传递数据?

从内存中删除未使用的 ViewController