iOS-无法隐藏首页上的导航栏

时间:2018-08-25 08:01:09

标签: ios objective-c uinavigationcontroller uinavigationbar

像这样的标签栏控制器之后,我有一个导航控制器

this

我想隐藏第一页上的导航栏,但是如果打开应用程序,它仍然不会隐藏。

我已经执行以下操作:

  1. 取消选中导航控制器上的“显示导航栏”
  2. 将此代码添加到ViewController第一页的“ viewWillAppear”下:
  

[[[self navigationController] setNavigationBarHidden:YES动画:YES];

当我单击“后退”按钮时,它会显示我的初始屏幕页面,如果我继续下一步,它将显示“首页”,但导航栏被隐藏。

这是我打开应用程序时的页面

this is the page when I open the application

这是当我单击返回并转到同一页面时

this is when i click back

您知道从一开始就隐藏导航栏的想法吗?

2 个答案:

答案 0 :(得分:0)

您可以这样做。

localNavigationController = [[UINavigationController alloc] initWithRootViewController:theViewController];
[localNavigationController setNavigationBarHidden:YES animated:YES];

答案 1 :(得分:0)

首先,我将解决您的问题。然后,我将介绍UINavigationController。

因此,您使用SB在Main.storyboard中创建一些viewController。这些viewController必须继承UITabBarController,UINavigationController或ViewController。 我看到您的屏幕截图是正确的,否则您的屏幕截图不清楚。

如果要编辑视图或布局视图,则需要创建ViewController并将其与Main.storyBoard中的ViewController匹配。我将测试这些操作。您可以做到这一点。

ViewControllers Match this 然后这些ViewController继承匹配的ViewController。

HomeTabBarViewController

HomeTabBar HandCode ScreenShot

FirstViewController FirstVC

SecondViewController

SecondVC

如上所述,这非常清楚。如果要在第一页中隐藏导航栏,则必须在FirstViewController中手写代码。还要在viewWillAppear:

中进行操作
self.navigationController.navigationBar.hidden = YES;

仅此而已。

如果您在HomeTabBarViewController中的手写代码隐藏的NavigationBar继承了UITabBarController,则因为navigationController是下一个在隐藏代码中不起作用的ViewController。

因此,UINavigationController具有自动创建导航栏。您不希望显示此导航栏以使用viewWillAppear中的隐藏导航栏。而且您也想隐藏此页面和下一页显示,可以{{1 }}隐藏,viewWillAppear显示。

希望可以帮助您解决问题。