推视图时隐藏标签栏

问题描述:

长时间读者,第一次问阿?推视图时隐藏标签栏

所以基本上我有每个标签导航控制器(它们每一个下井的意见几个层次)我目前隐藏标签栏时,我需要使用此代码标签栏的应用程序:

MyViewController *myVC = [[MyViewController alloc]initWithNibName:@"MyViewController" bundle:nil]; 

myVC.hidesBottomBarWhenPushed = YES; 

[self.navigationController pushViewController:myVC animated:YES]; 

[myVC release]; 

然而,这工作得很好,在我还没有在IB创建的导航控制我的标签之一,而是,编程

下面是编程创建导航控制器代码:

UINavigationController * navigationController = [[[UINavigationController alloc] init] autorelease]; 

self.segmentsController = [[SegmentsController alloc] initWithNavigationController:navigationController viewControllers:viewControllers]; 

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:[viewControllers arrayByPerformingSelector:@selector(title)]]; 
    self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 

[self.segmentedControl addTarget:self.segmentsController 
           action:@selector(indexDidChangeForSegmentedControl:) 
        forControlEvents:UIControlEventValueChanged]; 

[self.view addSubview:navigationController.view]; 

我在这里创建的是一个带有分段控件的导航栏,当我点击一个列表项目时,我想在其中一个分段控件视图(这是一个列表)中推入视图,我想隐藏标签栏,但没有任何使用这个问题开始时的代码,我假设它是如何做的导航控制器,视图推和弹出就好,但TabBar保持可见,当我想隐藏它,没有任何人有任何想法如何我可以隐藏这个标签栏?

感谢您的任何反馈提前!

编辑:作为'新用户',我无法提交图片以帮助查看问题,数字。哦,希望这里发生的事情对你们来说不是太模糊。

+0

你可以用'[viewControllers valueForKeyPath:@“@ unionOfObjects.title”]'替换'[viewControllers arrayByPerformingSelector:@selector(title)]' oid依赖于外部代码。在这里看到答案:http://*.com/a/16569259/296446 – Robert

+0

http://*.com/a/36148064/3078925 –

很难得到你想要的代码你已经给出的代码(并没有屏幕截图!),但它看起来像问题可能是,你只是添加导航控制器的视图直接作为子视图,而不是将nav控制器添加到视图控制器层次结构中。

因此,而不是

[self.view addSubview:navigationController.view]; 

使用

[self.navigationController pushViewController: navigationController animated: NO]; 

当然,这将意味着您的视图控制器本身必须是一个导航控制器堆栈(虽然你总是可以隐藏导航如此直观地看起来它会看起来一样)

+0

试过你的建议,但推navController只是抛出一个空白的屏幕。我的假设是,在视图中我试图隐藏TabBar,它实际上并没有访问标签栏。 (标签栏是整个根视图) – KyleDavidson

+0

奇怪的是,隐藏标签栏代码在使用我在mainWindow.xib中创建的导航控制器的选项卡中工作得很好 – KyleDavidson