后退按钮在iPhone的iPhone OS 4.0的导航栏中不可见

问题描述:

在我的应用程序(基于视图)中,后退按钮在导航栏中不可见。如果我点击那个按钮,这些操作就可以正常工作。这对我来说很奇怪。后退按钮在iPhone OS 3.0和其他版本中可见并可正常工作(OS 4.0除外)。我目前正在iPhone OS 4.0中工作。后退按钮在iPhone的iPhone OS 4.0的导航栏中不可见

这里是我的代码:

UIButton *btn=[[UIButton alloc] init]; 

[btn setImage:[UIImage imageNamed:@"Back.png"] forState:UIControlStateNormal]; 

[btn addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; 
[btn setImageEdgeInsets:UIEdgeInsetsMake(0, 70, 0, 20)]; 
UIBarButtonItem *b=[[UIBarButtonItem alloc] initWithCustomView:btn];  
self.navigationItem.leftBarButtonItem=b; 
[b release]; 
[btn release]; 

注:它不工作,仅适用于iPhone OS 4.0。那么我怎么能做到这一点?

只要你替换这个代码,无论你想在OS 4.0中工作正常。

UIButton *btn=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 70, 40)]; 

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 70, 40)]; 

[myView addSubview:btn]; 

UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0,5,50,30)]; 

[myImage setImage:[UIImage imageNamed:@"Back.png"]]; 

[myView addSubview:myImage]; 

[btn addTarget:self action:@selector(lOut) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *b1 = [[UIBarButtonItem alloc] initWithCustomView:myView]; 

self.navigationItem.leftBarButtonItem = b1; 

[btn release]; 

[b1 release]; 

[myView release]; 

[myImage release]; 

我希望它能帮助ypu。

+0

你好早安,我有同样的问题,它仍然不能在iOS 4.3上工作。我使用2代码1st设置自定义uinavigation栏如下: UIImageView * imageView =(UIImageView *)[navBar viewWithTag:1]; if(imageView == nil) imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@“navigation.png”]]; [imageView setTag:1]; [navBar insertSubview:imageView atIndex:0]; [imageView发布]; } 然后您发送的代码..任何帮助请参阅? – Veer 2012-02-15 17:19:16

UIButton *btn=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 40)]; 
[btn setImage:[UIImage imageNamed:@"info44.png"] forState:UIControlStateNormal]; 
[btn setImage:[UIImage imageNamed:@"info44_glowing.png"] forState:UIControlStateHighlighted]; 
[btn addTarget:[AppDelegate sharedAppDelegate] action:@selector(settingAction:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *settingButton = [[UIBarButtonItem alloc] initWithCustomView:btn]; 
self.navigationItem.leftBarButtonItem = settingButton; 
[btn release]; 
[settingButton release];