【发布时间】:2015-05-05 08:19:03
【问题描述】:
我想这是重复的,但经过研究我无法理解如何自定义UINavigationItem。
我有自定义ViewController (VC),它实现了自定义类SWRevealViewController(我需要创建滑动菜单)。
我有Menu VC,对于菜单的每个元素我都有Navigation VC,对于菜单的每个元素都有自定义VC。
要使用每个后退按钮,必须在 Designer 中定义并具有出口(我还为 navigation item 添加了出口):
@property (weak, nonatomic) IBOutlet UIBarButtonItem *btnSidebareMenu;
@property (weak, nonatomic) IBOutlet UINavigationItem *niTitle;
在我的.m 文件中,我有这个代码:
self.navigationItem.title = @"Custom title";
self.navigationController.topViewController.navigationItem.leftBarButtonItem = self.btnSidebareMenu;
self.btnSidebareMenu.enabled=TRUE;
self.btnSidebareMenu.style=UIBarButtonSystemItemRefresh;
为每个Menu element VC自定义按钮和标题。
我使用此代码来管理菜单导航:
// Manage menu button
SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
[self.btnSidebareMenu setTarget: self.revealViewController];
[self.btnSidebareMenu setAction: @selector( revealToggle: )];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
导航正常,但我无法自定义导航栏的外观:
我收到这个:
,但我需要这样的东西:
有什么建议吗?
编辑:
好的,我设法显示适当大小的图像,以更改导航栏的颜色,但我无法使用 status bar 和 navigation bar。当我设置navigation bar 的背景颜色时,它也会填充status bar。我看到了不同的解决方案,但它们不起作用或我不理解它们。
备注:我有几页不属于Navigation controller,其中我的status bar 是白色的。我的所有页面也需要这种情况。 (我需要它们看起来像图 2,其中状态栏为白色,导航部分为蓝色)。
【问题讨论】:
-
如果你想改变每个屏幕上的导航栏背景颜色...然后转到导航控制器..点击导航栏并转到属性检查器并设置 BarTintColor。
标签: ios objective-c uinavigationbar uinavigationitem