iPhone自定义导航栏,带有自定义UIBarButtonItems

时间:2012-02-24 08:54:48

标签: iphone ios uinavigationbar

我正在尝试创建一个带有标题和两个自定义baritems的自定义导航栏。 到目前为止我做了什么:
 1.子类UINavigationBar
 2.覆盖-(void) drawRect:(CGRect)rect方法,将图像绘制为背景

现在我在制作正确的按钮项目时卡住了 在我的CustomBar类中,我按以下方式覆盖pushNavigationItem方法:

- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated {
     [super pushNavigationItem:item animated:NO];
     item.rightBarButtonItem.customView.frame = CGRectMake(250, 5, 60,30); 
}

在我的视图控制器中我做过类似的事情:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
self.navigationController.navigationItem.rightBarButtonItem = barButton;
[self.navigationController.navigationBar pushNavigationItem:self.navigationItem animated:NO]

但是在调用

时我总是得到SIGABRT
[super pushNavigationItem:item animated:NO];

如果我退出该行,一切运行正常,但导航栏中没有按钮。

将自定义栏按钮项添加到自定义导航栏的正确方法是什么?

编辑: 为了澄清,我添加了一张图片。

这就是我需要的。 enter image description here

我正在尝试在右侧创建退出按钮

1 个答案:

答案 0 :(得分:0)

您是否尝试在设置项目时删除navigationController?我曾经这样设置标题,从来没有用过标题。

尝试[[self navigationItem] setRightBarButtonItem:yourButton];

在你的情况下:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
self.navigationItem.rightBarButtonItem = barButton;`