如何删除 SWRevealViewController 添加的导航选项卡?

How do I remove navigation tab added by SWRevealViewController?

我在 iOS 8.2 应用程序中使用 SWRevealViewController。它工作得很好,但是当我的视图显示时,磨砂导航栏挂在屏幕顶部的状态栏下方。它覆盖了我的背景图片,我还没有找到删除它的简单方法。

mainView = [[ViewController alloc] init];
sideMenu = [[MenuController alloc] init];

UINavigationController * frontViewController = [[UINavigationController alloc] initWithRootViewController:mainView];
UINavigationController * rearViewController = [[UINavigationController alloc] initWithRootViewController:sideMenu];

revealController = [[SWRevealViewController alloc] initWithRearViewController:rearViewController frontViewController:frontViewController];
revealController.delegate = mainView;

我搜索了 SWRevealViewController 代码,没有发现任何明显与之相关的内容。我尝试注释掉可疑的代码部分并查看结果。我隐藏了状态栏。什么都没碰它。

我已经尝试了一些东西...

[frontViewController.navigationController setNavigationBarHidden:YES];
frontViewController.navigationController.navigationBar.frame = CGRectZero;
[frontViewController.navigationController.navigationBar setHidden:YES];

[revealController.navigationController setNavigationBarHidden:YES];
revealController.navigationController.navigationBar.frame = CGRectZero;
[revealController.navigationController.navigationBar setHidden:YES];
[revealController.navigationController.navigationBar setBounds:CGRectZero];

...没有效果。

完成这道题后,我尝试了一个最终测试。

[mainView.navigationController setNavigationBarHidden:YES];

这成功了。似乎在将 mainView 嵌入 SWRevealViewController 的过程中,某些东西导致 mainView 本身的导航栏变得可见,即使默认情况下它是不可见的。

由于您的前视图是 mainView,您将使用

[mainView.navigationController setNavigationBarHidden:YES];

希望对您有所帮助。