简体   繁体   English

如何使以编程方式创建的leftBarButtonItem可见并设置backgroundimage

[英]How to make visible a leftBarButtonItem created programmatically and set backgroundimage

Below code is working fine in my application. 下面的代码在我的应用程序中工作正常。 But that leftbarbuttonitem is invisible. 但是那个leftbarbuttonitem是不可见的。 And I can't set background image to leftBarButtonItem . 而且我不能将背景图像设置为leftBarButtonItem I did some thing wrong, but I don't know what is the mistake? 我做错了什么,但我不知道这是什么错误? Is it possible to make visible and set background image? 是否可以显示和设置背景图像?

UIImageView *NavigationBarImage =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
NavigationBarImage.image=[UIImage imageNamed:@"mapbutton.png"];
[self.navigationController.navigationBar addSubview:NavigationBarImage];
self.navigationItem.hidesBackButton = YES;

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemStyleBordered target:self action:@selector(goBack)];
self.navigationItem.leftBarButtonItem = backButton;

-(void)goBack
{
    [self.navigationController popViewControllerAnimated:YES];
}

If you want to add a backgroundImage to your navigation item you have to add a custom button, like bellow: 如果要将backgroundImage添加到导航项,则必须添加一个自定义按钮,例如以下:

UIButton *tempButton                            =       [UIButton buttonWithType:UIButtonTypeCustom];
tempButton.frame                                =       CGRectMake(0, 0, 50, 30);
tempButton.showsTouchWhenHighlighted            =       YES;
tempButton.backgroundColor                      =       [UIColor clearColor];
[tempButton setBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[tempButton setTitle:@"Back" forState:UIControlStateNormal];
[tempButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backBtn                        =         [[UIBarButtonItem alloc]initWithCustomView:tempButton];

self.navigationItem.leftBarButtonItem           =       backBtn;

And to add a background Image to navigation bar you can use the following code 并将背景图片添加到导航栏,您可以使用以下代码

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"header.png"] forBarMetrics:UIBarMetricsDefault];
UIButton *home = [UIButton buttonWithType:UIButtonTypeCustom];  
UIImage *homeImage = [UIImage imageNamed:@"YOUR_IMAGE.png"];  
[home setBackgroundImage:homeImage forState:UIControlStateNormal];  
[home addTarget:self action:@selector(your_Action)  
forControlEvents:UIControlEventTouchUpInside];  
home.frame = CGRectMake(0, 0, 69, 26);  
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithCustomView:home];
[[self navigationItem] setLeftBarButtonItem:button2];
[button2 release];
button2 = nil;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何设置leftBarButtonItem的大小? - How can I set size leftBarButtonItem? 如何在iphone中以编程方式实现具有backgroundimage的按钮 - how to implement button with backgroundimage programmatically in iphone 如何设置背景图像以查看不同的iPhone设备 - How to set backgroundimage for view for different iPhone Device 如何设置以编程方式创建的TableView的子类? (没有情节提要) - How to set the subclass of a TableView that was created programmatically? (no storyboards) 如何在 Swift 中为 leftBarButtonItem 和 rightBarButtonItem 设置不同的色调 - How to set different tint color for leftBarButtonItem and rightBarButtonItem in Swift 如何将leftBarButtonItem添加到ABPeoplePickerNavigationController? - How to add a leftBarButtonItem to ABPeoplePickerNavigationController? UINavigationItem titleView“如果设置了leftBarButtonItem则忽略”? - UINavigationItem titleView “ignored if leftBarButtonItem is set”? 如何加载以编程方式创建的导航视图并使其成为 ModalView? - How to load a navigation view created programmatically and make it a ModalView? 如何更改UINavigationItem :: leftBarButtonItem的宽度? - How to change the width of UINavigationItem::leftBarButtonItem? 无法以编程方式创建UITextField可编辑(iOS) - Cannot make programmatically created UITextField editable (iOS)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM