1

为了自定义我的导航栏,我做了几个步骤:

  1. 创建一个继承自UINavigationBar类的子类,进行一些自定义,例如绘制阴影或为导航栏设置背景图像。
  2. 创建一个空的 xib 文件,它只包含一个导航视图控制器。
  3. 在导航视图控制器中设置导航栏的类名。

一切正常,但是当我想在导航栏上添加另一个自定义的后退按钮时,我尝试将 a 附加UIBarButtonItemnavigationItem.backbarbuttonitem,我不知道如何navigationItemUINavigationBar子类中获取。

代码示例:

// header file
@interface MyNavigationBar : UINavigationBar
@end

// implementation file
@implementation MyNavigationBar
-(void)drawRect:(CGRect)rect
{
  // background image
  UIImage* background_image = [UIImage imageNamed:@"my-navigation-bar.png"];
  [self setBackgroundImage:background_image forBarMetrics:UIBarMetricsDefault];

  // draw shadow
  self.layer.masksToBounds = NO;
  self.layer.shadowOpacity = 0.6;
  self.layer.shadowOffset = CGSizeMake(0, 3);
}

@end

有没有办法navigationItem在我的自定义子类中获取条目UINavigationBar,或者我只是做错了?:P

谢谢 :)

4

1 回答 1

0

您可以隐藏 uinavigationbar。然后放一个uiview,它可以具有uinavigationbar的高度和宽度。然后添加尽可能多的按钮可以适合或您想要。将 uiimage 添加到视图中。您将拥有一个不错的自定义导航栏。您可以使用 popviewcontroller 或 poptorootviewcontroller 来模仿后退按钮。

于 2012-10-16T20:24:17.250 回答