如何隐藏默认导航栏按钮并在其中添加自定义按钮?

时间:2011-03-17 13:25:28

标签: iphone objective-c uinavigationbar uinavigationitem uinavigation

我有一个基于导航的应用程序,我想在其中隐藏默认导航 它显示在左侧,我想添加我自己的自定义按钮。我写了以下2个代码。

代码示例1:

- (void)viewDidLoad {
    appDelegate=[(FoodAppDelegate *)[UIApplication sharedApplication]delegate];
UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"Volunteers_back.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 86, 30)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];        

但是这会显示默认导航按钮。

第二个代码示例:

self.navigationItem.hidesBackButton=YES;
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"DontWorryAboutThis" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
    [barButton setImage:[UIImage imageNamed:@"Volunteers_back.png"]];
    [self.navigationItem setLeftBarButtonItem:barButton];

此按钮显示按钮默认值和自定义相互重叠。 有没有人知道这里有什么问题?或任何样本代码来实现这个目标?

1 个答案:

答案 0 :(得分:1)

您不必隐藏后退按钮。如果你替换leftBarButtonItem,它应该覆盖那里的任何按钮。我使用此代码,并且只使用此代码在我的几个应用程序中完成此操作。

UIBarButtonItem *btnCancel =
[[UIBarButtonItem alloc] initWithTitle: @"Cancel"
                                 style: UIBarButtonItemStylePlain
                                target: self
                                action: @selector(actionButtonCancel)];
self.navigationItem.leftBarButtonItem = btnCancel;
[btnCancel release];