自定义UIBarButtonItem在iOS8中无法正常工作

自定义UIBarButtonItem在iOS8中无法正常工作,ios,cocoa-touch,uiscrollview,uibarbuttonitem,Ios,Cocoa Touch,Uiscrollview,Uibarbuttonitem,我正在设置一个自定义UIBarButtonItem,它在iOS 7上运行良好,但在iOS 8上,我看到分页中的下一个视图控制器的返回图标显示在当前可见页面上。我在UIScrollView中有多个视图控制器 请看下面我的代码。如果我尝试删除负间隔,它的工作原理很好,但随后返回图标移动到右侧,看起来不太好 请提供想法 UIImage *backArrow = [UIImage imageNamed:@"back.png"]; UIButton *aBackButton = [UIButton but

我正在设置一个自定义UIBarButtonItem,它在iOS 7上运行良好,但在iOS 8上,我看到分页中的下一个视图控制器的返回图标显示在当前可见页面上。我在UIScrollView中有多个视图控制器

请看下面我的代码。如果我尝试删除负间隔,它的工作原理很好,但随后返回图标移动到右侧,看起来不太好

请提供想法

UIImage *backArrow = [UIImage imageNamed:@"back.png"];
UIButton *aBackButton = [UIButton buttonWithType:UIButtonTypeSystem];
CGSize aBackButtonTextSize = [MyLocalized(BackButtonKey) sizeWithFont:[UIFont systemFontOfSize:kFontSize17]];
aBackButton.frame = CGRectMake(kScreenOrigin, kScreenOrigin, aBackButtonTextSize.width + backArrow.size.width, self.navigationController.navigationBar.frame.size.height);
aBackButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[aBackButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
[aBackButton setTitle:MyLocalized(BackButtonKey) forState:UIControlStateNormal];
[aBackButton setImage:backArrow forState:UIControlStateNormal];
UIBarButtonItem *aLeftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aBackButton];
UIBarButtonItem *aNegativeSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
aNegativeSpacer.width = -8;
self.navigationItem.leftBarButtonItems = @[aNegativeSpacer, aLeftBarButtonItem];
嗯。。。 您可以将另一个“正间隔”作为第三个左按钮,以补偿第一个。不管怎么说,这对我来说太复杂了。实现自定义UIBarButtonItem的最佳方法是,我可以看到子类UIBarButtonItem和“内部”实现其行为