应用程序试图在自身上呈现模态视图控制器

BPD*_*LVA 8 uitabbarcontroller uikit ios swift

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)
    }
}
Run Code Online (Sandbox Code Playgroud)

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“应用程序试图在其自身上呈现模态视图控制器。呈现控制器是 .'

我需要在使用 firebase 对应用程序进行身份验证后导航到一个页面,以便在验证身份验证后使用上面的代码。我该如何解决这个问题,一个解释如何到达那里的参考链接或代码就足够了。

iel*_*ani 6

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

self.present(mainTabController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

如果您在 Appdelegate 中,则将您的 ViewController 设置为该window属性的根视图控制器:

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()
    }
}
Run Code Online (Sandbox Code Playgroud)