Ios 每次打开应用程序时从AppDelegate显示模态视图控制器

Ios 每次打开应用程序时从AppDelegate显示模态视图控制器,ios,swift,presentviewcontroller,Ios,Swift,Presentviewcontroller,我有一个应用程序,每次打开该应用程序时,我都需要显示pin/登录屏幕。我的计划是从AppDelegate执行此操作。我一直在试图拼凑如何做到这一点,但我被困在两件事上 我的应用程序是一个选项卡视图控制器,所以我很难确定需要从哪个控制器显示 我尝试了以下方法来获取根控制器: 让navigationController=window?.rootViewController为?UINavigationController但它为零。我相信这是因为选项卡控制器没有嵌入导航控制器中,尽管其中的两个控制器都是

我有一个应用程序,每次打开该应用程序时,我都需要显示pin/登录屏幕。我的计划是从AppDelegate执行此操作。我一直在试图拼凑如何做到这一点,但我被困在两件事上

我的应用程序是一个选项卡视图控制器,所以我很难确定需要从哪个控制器显示

我尝试了以下方法来获取根控制器:
让navigationController=window?.rootViewController为?UINavigationController
但它为零。我相信这是因为选项卡控制器没有嵌入导航控制器中,尽管其中的两个控制器都是

因此,我的两个问题归结为:

  • 如果我将代码放入didFinishLaunchingWithOptions,是否每次打开应用时都会打开它
  • 既然是TabViewController,如何获取根控制器视图来显示模式

  • 1-关于如何知道索引,您可以将rootVC转换为tabbar控制器,并要求它提供当前索引(
    selectedIndex
    ),如下所示

    let currentIndex = rootTab.selectedIndex
    
    2-您可以获得rootVC作为

    if let rootTab = window?.rootViewController as? UITabBarController
    
    当应用程序处于活动状态时(在
    applicationIDbecomeactive
    委托方法中),您可以显示它

    获得风险投资

    let vc = rootTab.viewControllers[rootTab.selectedIndex]
    

    使用它,我为
    rootTab.tabBar.selectedItem
    最后一个问题得到一个nil值。这给了我索引,但我不知道如何返回特定的控制器。我知道如何设置、删除和添加,但不返回该索引处的控制器。谢谢,我最初确实尝试过,但误读了它给我的错误,认为它是错误的。那确实有效。