1

取消按钮是错过了吗?!我怎样才能解决这个问题?非常感谢你。

    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])
    {
        if(buttonIndex == 1)
        {
            self.ctr = [[UIImagePickerController alloc] init];
            self.ctr.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            self.ctr.delegate = self;
            self.ctr.allowsEditing = YES;
            [self presentModalViewController:self.ctr animated:YES];
        }

    }

在此处输入图像描述

4

3 回答 3

3

改一下UIImagePickerController navigationBar.tintColor,应该就OK了。

self.ctr.navigationBar.tintColor = [UIColor redColor];//Cancel button text color
[self.ctr.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor: [UIColor blackColor]}];// title color

在此处输入图像描述

于 2013-09-22T10:58:33.940 回答
0

topItem看起来苹果在这方面犯了一些错误(iOS 10,Xcode 8),因为在控制器没有属性或属性之前无法更改 UIImagePickerController 的色调颜色navigationController。所以已经完成了UIImagePickerController extension. 但是我检查navigationControllertopItem在那些被覆盖的方法中:viewDidLoad, viewWillAppear, viewDidAppear. 但它仍然是nil。所以我决定检查一下viewWillLayoutSubviews,瞧!它不是 nil,所以我们可以在这里设置精确 rightBarButtomItem 的条形颜色!

这是示例:

    extension UIImagePickerController {
        open override func viewWillLayoutSubviews() {
            super.viewWillLayoutSubviews()
            self.navigationBar.topItem?.rightBarButtonItem?.tintColor = UIColor.black 
            self.navigationBar.topItem?.rightBarButtonItem?.isEnabled = true
        }
    }

模拟器上的示例(但在 上测试过)

并且不要忘记打电话super.viewWillLayoutSubviews,这很重要;-) 编辑:但是返回相册屏幕时仍然有问题..

于 2017-02-23T10:41:37.270 回答
0

更改 tintColor

self.navigationBar.topItem?.rightBarButtonItem?.tintColor = UIColor.black 

如果这不起作用,请通过您的视图控制器运行以查看是否没有您更改导航栏外观并重置更改的地方。

于 2018-04-11T04:26:05.860 回答