应用程序尝试在其自身上显示模式视图控制器

时间:2018-08-30 21:08:58

标签: ios swift uikit uitabbarcontroller

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”而终止应用程序,原因:“应用程序试图在其自身上显示模式视图控制器。呈现控制器为。'

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

1 个答案:

答案 0 :(得分:3)

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

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

如果您位于Appdelegate中,则将vc设置为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()
    }
}