从自定义UINavigationBar类获取navigationItem

时间:2012-10-16 19:48:49

标签: ios uinavigationbar

要自定义导航栏,我执行了几个步骤:

  1. 创建一个继承自UINavigationBar类的子类,进行一些自定义,如绘制阴影或为导航栏设置背景图像。
  2. 创建一个空的xib文件,其中只包含导航视图控制器。
  3. 在导航视图控制器中设置导航栏的类名称。
  4. 一切正常,但当我想在导航栏上添加另一个自定义后退按钮时,我尝试将UIBarButtonItem附加到navigationItem.backbarbuttonitem,我不知道如何获取navigationItem 1}}来自UINavigationBar子类。

    代码示例:

    // 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

    谢谢:)

1 个答案:

答案 0 :(得分:0)

你可以隐藏uinavigationbar。然后放一个可以有uinavigationbar高度和宽度的uiview。然后添加按钮可以适合或您想要的数量。将uiimage添加到视图中。你会有一个很好的定制uinavigation酒吧。你可以使用popviewcontroller或poptorootviewcontroller来模仿后退按钮。