如何通过 TabBarController => NavbarController 从 Appdelegate 呈现视图控制器

How to present view controller from Appdelegate via TabBarController => NavbarController

我如何将来自 appdelegate 的所有堆栈呈现给视图控制器。
TabBarContoller 是根视图控制器。
我在 TabBarController 上有 4 个选项卡,每个都是导航控制器。
所以我需要像这样呈现 viewcontroller。 tabBar => navBar => mainViewContoller => aViewController => bViewController;
而且我应该能够使用导航回主界面viewcontroller 或通过标签栏导航。

我有一个故事板。

我尝试了很多类似问题推荐的解决方案,但没有帮助。

您应该只通过情节提要来实现它。

我使用 appcoda 尝试了示例项目。我 运行 它成功了 that.I 向您展示了故事板设计。

它已经使用多个视图控制器实现。

TabBarController * tabBar = (TabBarController *)[UIApplication sharedApplication].delegate.window.rootViewController;
                   if([tabBar isKindOfClass:[UITabBarController class]]){
                   [tabBar setSelectedIndex:0];
                   UINavigationController * navBar = (UINavigationController *)tabBar.selectedViewController;
                   UIViewController * currentVC = navBar.topViewController;
                   [currentVC performSegueWithIdentifier:@"notificationSegue" sender:nil];

我认为这可能对所有 swift 的人都有帮助。我有一个类似的项目设置,LoginViewcontroller -> TabBarController (5 tabs) -> NavigationController for each tab -> Other ViewControllers

在情节提要中,我给了我的 TabBarController 一个情节提要 ID

我在 AppDelegate(didFinishLaunchingWithOptions) 中添加了

self.window = UIWindow(frame: UIScreen.main.bounds)
let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "TabBarControllerID") as! UITabBarController
viewController.selectedIndex = 3
self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()

将 selectedIndex 值更改为您需要的任何选项卡