ios7;自定义后退按钮;倒退指示符号图像+倒退指示符号转换图像
我正在尝试设置图像,而不是导航栏中的标准后退箭头。看起来像ios7;自定义后退按钮;倒退指示符号图像+倒退指示符号转换图像,ios7,uinavigationcontroller,uinavigationbar,back-button,Ios7,Uinavigationcontroller,Uinavigationbar,Back Button,我正在尝试设置图像,而不是导航栏中的标准后退箭头。看起来像 UIImage *tmpImage = [UIImage imageNamed:@"back.png"]; CGSize newSize = CGSizeMake(12, 22); UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0f); [tmpImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]
UIImage *tmpImage = [UIImage imageNamed:@"back.png"];
CGSize newSize = CGSizeMake(12, 22);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0f);
[tmpImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *backButtonImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[UIBarButtonItem.appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -64) forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackIndicatorImage:backButtonImage];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:backButtonImage];
问题是它有时有效,有时无效。此外,它取决于构建,而不是发布。我的意思是,在一个构建中,它可能会工作,在重建之后,即使没有任何更改,它也可能不工作。如果我的后退按钮在某个版本中工作,它的工作方式与我启动应用程序的次数无关
有人知道怎么修理吗?
谢谢
编辑:
我尝试使用UIGraphicsGetImageFromCurrentImageContext进行w/o操作;
结果是一样的…我试图从AppDelegate.m中执行此操作,但我做不到。 最后,我制作了静态方法,生成如下按钮:
+(UIBarButtonItem*) backButton: (id)target selector:(SEL)selector{
UIViewController* controller=(UIViewController*)target;
[controller.navigationController setNavigationBarHidden:NO];
UIImage* backImg = [UIImage imageNamed:@"backbtniphonetrimed.png"];
UIButton* backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[backBtn setFrame:CGRectMake(0, 0, backImg.size.width , backImg.size.height)];
[backBtn setImage:backImg forState:UIControlStateNormal];
[backBtn addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
if ([UIImage imageNamed:@"backbtniphonetrimed.png"] != nil){
[backBtn setImage:[UIImage imageNamed:@"backbtniphonetrimed.png"] forState:UIControlStateHighlighted];
}
return [[UIBarButtonItem alloc] initWithCustomView:backBtn];
}
然后在viewDidLoad方法中的控制器中,我刚刚调用了它并实现了back方法
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem=[UIHelper backButton:self selector:@selector(back)];
}
-(void) back{
[self.navigationController popViewControllerAnimated:YES];
}