长期的读者,第一次问道?

因此,基本上,我有一个选项卡栏应用程序,每个选项卡均带有导航控制器(每个控件都具有多个视图级别),当需要使用此代码时,我当前隐藏了选项卡栏:

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保持可见,有人知道吗如何隐藏此标签栏?

感谢您的任何提前反馈!

编辑:作为“新用户”,我无法提交图片以帮助形象化地展示问题,人物。噢,希望这里发生的事情对你们来说并不太模糊。

最佳答案

很难用给定的代码(并且没有屏幕截图!)来获得要实现的目标,但是看起来问题可能在于您只是将nav控制器的视图直接添加为子视图。 ,而不是将导航控制器添加到视图控制器层次结构中。

所以,而不是

[self.view addSubview:navigationController.view];


采用

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


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

关于ios - 按下 View 时隐藏标签栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7257315/

10-12 00:11
查看更多