UINavigationBar 子视图上的 SWRealViewController 隐藏了 UINavigationItems

SWRealViewController over UINavigationBar subview hides UINavigationItems

当我将 SWRevealViewController 层叠在普通 UIViewController 的视图上以实现向左滑动菜单效果时,它按预期工作。

但是,当此视图控制器嵌入到 UINavigationController 上时,它会覆盖导航栏并隐藏图像和左右 BarButtonItems。

如果能帮我找到解决方法,我将不胜感激。

这就是我添加此按钮的方式:

UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage: [UIImage imageNamed:@"icon-back"]
                                                                      style:UIBarButtonItemStylePlain
                                                                    target:self.revealViewController action:@selector(revealToggle:)];
UIBarButtonItem *saveExitButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"out"]
                                                                     style:UIBarButtonItemStylePlain
                                                                    target:self action:@selector(saveExit)];

self.navigationController.navigationItem.leftBarButtonItem = revealButtonItem;
self.navigationController.navigationItem.rightBarButtonItem = saveExitButtonItem;

添加此存储库以表明我正在使用此组件的观点https://github.com/John-Lluch/SWRevealViewController

https://github.com/AresDev/revealtest.git

Main.storyboard 正在运行,只需将项目设置主界面更改为 NonWorking.storyboard 即可查看错误。

这是我从你的问题中了解到的:你正在尝试将导航抽屉视图控制器放在一起。如果是那么你可以参考:https://github.com/mutualmobile/MMDrawerController

如果没有,请详细说明您的问题。

我找到了解决办法,我必须添加按钮项的导航项实际上是 RevealViewController 导航项。

UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage: [UIImage imageNamed:@"icon-back"]
                                                                  style:UIBarButtonItemStylePlain
                                                                target:self.revealViewController action:@selector(revealToggle:)];

UIBarButtonItem *saveExitButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"out"]
                                                                 style:UIBarButtonItemStylePlain
                                                                target:self action:@selector(saveExit)];

self.revealViewController.navigationItem.leftBarButtonItem = revealButtonItem;
self.revealViewController.navigationItem.rightBarButtonItem = saveExitButtonItem;