Ios 通过自定义UINavigationBar类从中获取navigationItem

Ios 通过自定义UINavigationBar类从中获取navigationItem,ios,uinavigationbar,Ios,Uinavigationbar,要自定义导航栏,我执行了几个步骤: 创建一个继承自UINavigationBar类的子类,进行一些自定义操作,如为导航栏绘制阴影或设置背景图像。 创建一个空的xib文件,它只包含一个导航视图控制器。 在导航视图控制器中设置导航栏的类名。 一切正常,但当我想在导航栏上添加另一个自定义的后退按钮时,我尝试将UIBarButtonim附加到navigationItem。BackBarButtonim,我不知道如何从UINavigationBar子类获取navigationItem 代码示例: // h

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

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

代码示例:

// 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
有没有办法在自定义的UINavigationBar子类中获取navigationItem条目,或者我只是用了错误的方法P


谢谢:

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