let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
if userSignedInGlobal == "success"{
    if let mainTabController = storyboard.instantiateViewController(withIdentifier: "MainTabController") as?  MainTabController{
        mainTabController.present(mainTabController, animated: true, completion: nil)
    }
}

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“应用程序试图在其自身上显示模态视图 Controller 。正在显示 Controller 为“。

使用Firebase验证应用程序后,我需要导航至页面,以便在验证身份验证后使用上述代码。我该如何解决这个引用链接或解释如何到达那里的代码就足够了。

最佳答案

如果您在UIViewController中,则更改此行:

self.present(mainTabController, animated: true, completion: nil)

如果您位于Appdelegate中,则将vc设置为window属性的根 View Controller :
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
if userSignedInGlobal == "success"{
    if let mainTabController = storyboard.instantiateViewController(withIdentifier: "MainTabController") as?  MainTabController{
        window?.rootViewController = mainTabController
        window?.makeKeyAndVisible()
    }
}

关于ios - 应用程序尝试在其自身上显示模态视图 Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52105384/

10-13 06:07