Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义后退按钮出现在UIImagePickerController上_Ios_Uinavigationbar_Back Button_Uiappearance - Fatal编程技术网

Ios 自定义后退按钮出现在UIImagePickerController上

Ios 自定义后退按钮出现在UIImagePickerController上,ios,uinavigationbar,back-button,uiappearance,Ios,Uinavigationbar,Back Button,Uiappearance,我使用以下代码在整个应用程序中自定义导航栏上的“后退”按钮: UIImage *backButton = [[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; UIImage *backButtonOn = [[UIImage imageNamed:@"backButton_on"] resizableImageWithCapInsets:UIEdgeInset

我使用以下代码在整个应用程序中自定义导航栏上的“后退”按钮:

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并在照片库中输入相册时,“后退”按钮也是自定义的后退按钮。如何在图像选择器中恢复原始的“后退”按钮?

尝试使用以下方法:

    [[UINavigationBar appearanceWhenContainedIn:[YourClassThatsNotAUIImagePicker class], nil] setBackButtonBackgroundImage:someOtherImage forBarMetrics:UIBarMetricsDefault];
这应该将外观设置限制为仅列出的类,因此不使用UIImagePickerController

 [[UIBarButtonItem appearanceWhenContainedIn:[UIImagePickerController class], nil] setBackButtonBackgroundImage:[UIImage imageNamed:@"blank-button"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
这是swift和ios9的正确方法(上面的答案如下)--

2.如果要修改UINavigationBar的BackIndicationImage

UINavigationBar.appearanceWhenContainedInInstancesOfClasses([UIImagePickerController.self]).backIndicatorImage = UIImage(named: "backButton")//or nil
3.如果要修改BackIndicator TransitionMaskimage

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

我通过创建一个自定义的UINavigationBar子类解决了这个问题,并在导航控制器中使用了它。然后我使用了建议的
[UINavigationBar appearancewhen-containedin:[MyNavigationBar class],nil]
方法。这样,我只需添加我的导航栏类。这是一个快速的解决方案,谢谢。这里绝对是最好的答案。
UIAvigationBar
包含在
UIImagePickerController
中时外观不工作<代码>UIBarButtonItem工作正常。
UINavigationBar.appearanceWhenContainedInInstancesOfClasses([UIImagePickerController.self]).backIndicatorTransitionMaskImage =UIImage(named: "backButton")// nil