iOS7 UIImagePickerController取消按钮消失
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS7 UIImagePickerController取消按钮消失相关的知识,希望对你有一定的参考价值。
取消按钮错过了?!我怎样才能解决这个问题?非常感谢你。
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];
}
}
只需更改UIImagePickerController navigationBar.tintColor,就可以了。
self.ctr.navigationBar.tintColor = [UIColor redColor];//Cancel button text color
[self.ctr.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor: [UIColor blackColor]}];// title color
看起来苹果犯了一些错误(ios 10,Xcode 8),因为在控制器没有topItem
属性或navigationController
属性之前,只能改变UIImagePickerController的色调颜色,导致。所以在UIImagePickerController extension
做了变化。但我用那些压倒一切的方法检查了navigationController
和topItem
:viewDidLoad
,viewWillAppear
,viewDidAppear
。但它仍然是nil
。所以我决定在viewWillLayoutSubviews
检查它,瞧!它不是零,所以我们可以在这里设置精确rightBarButtomItem的条纹色调!
这是一个例子:
extension UIImagePickerController {
open override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
self.navigationBar.topItem?.rightBarButtonItem?.tintColor = UIColor.black
self.navigationBar.topItem?.rightBarButtonItem?.isEnabled = true
}
}
并且不要忘记打电话给super.viewWillLayoutSubviews
,这非常重要;-)编辑:但是当它返回专辑屏幕时仍然有问题..
更改tintColor
self.navigationBar.topItem?.rightBarButtonItem?.tintColor = UIColor.black
如果这不起作用,请通过视图控制器查看是否没有更改导航栏外观并重置更改的位置。
以上是关于iOS7 UIImagePickerController取消按钮消失的主要内容,如果未能解决你的问题,请参考以下文章
在 UIPopoverController 中使用 UIImagePickerController 后播放视频消失