每次打开应用程序时从 AppDelegate 显示模态视图控制器
Display modal view controller from AppDelegate every time app is opened
我有一个应用程序,我需要在每次打开该应用程序时显示 pin/login 屏幕。我的计划是从 AppDelegate 执行此操作。我一直在努力拼凑如何做到这一点,但我被困在两块上。
我的应用程序是一个选项卡视图控制器,所以我无法确定我需要从哪个控制器呈现。
我试过这个来获取根控制器:
let navigationController = window?.rootViewController as? UINavigationController
但它是 nil 。我相信这是因为选项卡控制器没有嵌入导航控制器,尽管其中的两个控制器都是。
所以我的两个问题归结为:
- 如果我将代码放入 didFinishLaunchingWithOptions 中,它会在每次打开应用程序时打开吗?
- 由于它是 TabViewController,我如何才能获取根控制器视图以显示模态?
1- 关于如何知道索引,您可以将 rootVC 转换为 tabBarController 并像这样向它询问当前索引 (selectedIndex
)
let currentIndex = rootTab.selectedIndex
2- 您可以获得 rootVC 作为
if let rootTab = window?.rootViewController as? UITabBarController
您可以在应用程序激活时显示它(在 applicationDidBecomeActive
中)委托方法
获得VC
let vc = rootTab.viewControllers[rootTab.selectedIndex]
我有一个应用程序,我需要在每次打开该应用程序时显示 pin/login 屏幕。我的计划是从 AppDelegate 执行此操作。我一直在努力拼凑如何做到这一点,但我被困在两块上。
我的应用程序是一个选项卡视图控制器,所以我无法确定我需要从哪个控制器呈现。
我试过这个来获取根控制器:
let navigationController = window?.rootViewController as? UINavigationController
但它是 nil 。我相信这是因为选项卡控制器没有嵌入导航控制器,尽管其中的两个控制器都是。
所以我的两个问题归结为:
- 如果我将代码放入 didFinishLaunchingWithOptions 中,它会在每次打开应用程序时打开吗?
- 由于它是 TabViewController,我如何才能获取根控制器视图以显示模态?
1- 关于如何知道索引,您可以将 rootVC 转换为 tabBarController 并像这样向它询问当前索引 (selectedIndex
)
let currentIndex = rootTab.selectedIndex
2- 您可以获得 rootVC 作为
if let rootTab = window?.rootViewController as? UITabBarController
您可以在应用程序激活时显示它(在 applicationDidBecomeActive
中)委托方法
获得VC
let vc = rootTab.viewControllers[rootTab.selectedIndex]