长时间读者,第一次问问呃?
所以基本上我有一个标签栏应用程序,每个标签都有一个导航控制器(它们各自进入几个级别的视图)当我需要使用此代码时,我正在隐藏标签栏:
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 :(得分:1)
使用您给出的代码(并且没有屏幕截图!)很难准确地获得您想要实现的内容,但看起来问题可能是您只是直接添加导航控制器的视图作为子视图,而不是将导航控制器添加到视图控制器层次结构。
所以,而不是
[self.view addSubview:navigationController.view];
使用
[self.navigationController pushViewController: navigationController animated: NO];
这当然意味着您的视图控制器本身必须位于导航控制器堆栈中(尽管您可以始终隐藏导航栏,因此在视觉上它看起来会一样)