取消按钮错过了?!我怎样才能解决这个问题?非常感谢你。
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];
}
}
答案 0 :(得分:3)
只需更改UIImagePickerController navigationBar.tintColor,就可以了。
self.ctr.navigationBar.tintColor = [UIColor redColor];//Cancel button text color
[self.ctr.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor: [UIColor blackColor]}];// title color
答案 1 :(得分:0)
看起来苹果犯了一些错误(iOS 10,Xcode 8),因为在控制器没有topItem
属性或{{1}之前,只能更改UIImagePickerController的色调颜色,导致属性。所以在navigationController
进行了更改。但我在这些覆盖的方法中检查了UIImagePickerController extension
和navigationController
:topItem
,viewDidLoad
,viewWillAppear
。但它仍然是viewDidAppear
。所以我决定在nil
检查一下,瞧!这不是零,所以我们可以在这里设置精确rightBarButtomItem的条形色调颜色!
以下是示例:
viewWillLayoutSubviews
不要忘记致电 extension UIImagePickerController {
open override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
self.navigationBar.topItem?.rightBarButtonItem?.tintColor = UIColor.black
self.navigationBar.topItem?.rightBarButtonItem?.isEnabled = true
}
}
,这非常重要;-)
编辑:但返回相册屏幕时仍然有问题..
答案 2 :(得分:0)
更改tintColor
self.navigationBar.topItem?.rightBarButtonItem?.tintColor = UIColor.black
如果这不起作用,请通过视图控制器查看是否没有更改导航栏外观并重置更改的位置。