我有一个基于导航的应用程序,我想在其中隐藏默认导航 它显示在左侧,我想添加我自己的自定义按钮。我写了以下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];
此按钮显示按钮默认值和自定义相互重叠。 有没有人知道这里有什么问题?或任何样本代码来实现这个目标?
答案 0 :(得分:1)
您不必隐藏后退按钮。如果你替换leftBarButtonItem,它应该覆盖那里的任何按钮。我使用此代码,并且只使用此代码在我的几个应用程序中完成此操作。
UIBarButtonItem *btnCancel =
[[UIBarButtonItem alloc] initWithTitle: @"Cancel"
style: UIBarButtonItemStylePlain
target: self
action: @selector(actionButtonCancel)];
self.navigationItem.leftBarButtonItem = btnCancel;
[btnCancel release];