2

我有一旦导航项目被选择我推标签栏控制器瓦特/几个视图控制器在我的导航控制器如何将其他视图控制器推送到NavigationController但保持TabBar?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.navController.viewControllers = [NSArray arrayWithObject:[self getHomeViewController]]; 

    [[self getWindow] addSubview:self.navController.view]; 
    [[self getWindow] makeKeyAndVisible]; 

    return YES; 
} 

的根与碱性视图控制器启动的应用程序。

-(void)launchOptionWithTabBarController:(NSUInteger)selectedIndex 
{ 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects: 
              [self getFirstViewController], 
              [self getSecondViewController], 
              nil]; 

    [self.tabBarController setSelectedIndex:selectedIndex]; 
    [self.navController pushViewController:self.tabBarController animated:YES]; 
} 

的问题是,我现在需要在一个标签栏控制器开放的顶部添加其他视图控制器......当我把一个导航控制器,像这样..

- (void)launchNewViewControllerWithArray:(NSArray *)stuff 
{ 
    self.newViewController = [self getNewViewController]; 

    [self.navController pushViewController:self.newViewController animated:YES]; 
} 

我不再看到标签栏导航(我希望看到这个导航w /我推动每个项目)。

如何修改我的控制流,使标签栏导航项保留在底部?

回答

1

您需要在导航控制器的父级控制器中,而不是反之亦然。或者在你的tabbar控制器上引入另一个父控制器的导航控制器,并将新的viewcontroller推到那个控制器上。

0

您可以通过在tabbar选择的viewcontroller上推送新的viewController来实现此目的。所以你可以这样写你的启动功能

- (void)launchNewViewControllerWithArray:(NSArray *)stuff 
{ 
    self.newViewController = [self getNewViewController]; 

    [[self.tabbarController selectedViewController] pushViewController:self.newViewController animated:YES]; 
} 
相关问题