自定义后退button出现在UIImagePickerController上

我使用下面的代码来定制我的应用程序中导航栏上的后退button:

UIImage *backButton = [[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; UIImage *backButtonOn = [[UIImage imageNamed:@"backButton_on"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonOn forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 

除了当我提供一个UIImagePickerController,并在照片库中input一个相册的后退button也是自定义后退button,它工作得很好。 如何取回图像select器中的原始后退button?

尝试使用这个:

  [[UINavigationBar appearanceWhenContainedIn:[YourClassThatsNotAUIImagePicker class], nil] setBackButtonBackgroundImage:someOtherImage forBarMetrics:UIBarMetricsDefault]; 

这应该限制你的外观设置只有你列出的类,因此离开UIImagePickerController单独。

  [[UIBarButtonItem appearanceWhenContainedIn:[UIImagePickerController class], nil] setBackButtonBackgroundImage:[UIImage imageNamed:@"blank-button"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

这是正确的方法

1.for swift和ios9(上面的答案会像) –

  UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UIImagePickerController.self]).setBackButtonBackgroundImage(UIImage(named: "blank-button"), forState: UIControlState.Normal, barMetrics: UIBarMetrics.Default) 

2.如果你想修改UINavigationBar的backIndicatorImage

 UINavigationBar.appearanceWhenContainedInInstancesOfClasses([UIImagePickerController.self]).backIndicatorImage = UIImage(named: "backButton")//or nil 

3.如果你想修改backIndicatorTransitionMaskImage

 UINavigationBar.appearanceWhenContainedInInstancesOfClasses([UIImagePickerController.self]).backIndicatorTransitionMaskImage =UIImage(named: "backButton")// nil