按下视图时隐藏标签栏

时间:2011-08-31 13:06:22

标签: ios uitabbar

长时间读者,第一次问问呃?

所以基本上我有一个标签栏应用程序,每个标签都有一个导航控制器(它们各自进入几个级别的视图)当我需要使用此代码时,我正在隐藏标签栏:

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保持可见,是否有人有关于我如何隐藏这个标签栏的任何想法?

感谢您提前获得任何反馈!

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

1 个答案:

答案 0 :(得分:1)

使用您给出的代码(并且没有屏幕截图!)很难准确地获得您想要实现的内容,但看起来问题可能是您只是直接添加导航控制器的视图作为子视图,而不是将导航控制器添加到视图控制器层次结构。

所以,而不是

[self.view addSubview:navigationController.view];

使用

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

这当然意味着您的视图控制器本身必须位于导航控制器堆栈中(尽管您可以始终隐藏导航栏,因此在视觉上它看起来会一样)