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

时间:2017-03-27 14:06:49

标签: objective-c uinavigationcontroller uitabbarcontroller appdelegate presentviewcontroller

我如何使用appdelegate的所有堆栈呈现视图控制器 TabBarContoller是rootviewcontoller 我在TabBarController上有4个标签,每个标签都是导航控制器 所以我需要像这样呈现viewcontroller。 tabBar => navBar => mainViewContoller => aViewController => bViewController;
我应该可以用来导航回主视图控制器或用tabbar导航。

我有一个故事板。

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

3 个答案:

答案 0 :(得分:0)

您应该只通过故事板实现这一点。

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

enter image description here

enter image description here

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

答案 1 :(得分:0)

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];

答案 2 :(得分:0)

我认为这可能对你们所有人都很有帮助。我有类似的项目设置,LoginViewcontroller - > TabBarController(5个标签) - >每个标签的NavigationController - >其他ViewControllers

在storyboard中,我为我的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值更改为您需要的任何标签