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];
}