2013-09-22 4 views
1

Кнопка «Отмена» отсутствует? Как я могу это исправить? Большое спасибо.iOS7 UIImagePickerController Cancel button исчезает

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]; 
     } 

    } 

enter image description here

+0

Попробуйте подкласс UIImagePickerController, затем внутри вашего подкласса - (void) viewDidLoad, добавьте кнопку отмены. –

+1

@Basheer_CAD Спасибо. – jxdwinter

+0

Вы нашли решение? У меня тоже такая же проблема, и я пробовал много способов. Тем не менее, это невозможно показать. – mmjuns

ответ

2

Просто измените UIImagePickerController navigationBar.tintColor, оно должно быть в порядке.

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

enter image description here

+0

Привет @jxdwinter Имеет ту же самую проблему, но для UIImagePickerControllerSourceTypeCamera. Я добавил ваш код, но не использовал его. Пожалуйста, помогите мне. – Trup

0

Похоже, яблоко сделал какую-то ошибку с ним (IOS 10, Xcode 8), потому что только изменение оттенка цвета UIImagePickerController не может быть сделано, потому что, прежде, чем контроллер не имеет topItem свойство, или navigationController Недвижимость. Так сделали изменения в 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 
     } 
    } 

Exampel on simulator (but it tested on)

И не забудьте позвонить super.viewWillLayoutSubviews, это очень важно ;-) EDIT: Но это все еще есть проблемы, когда возврат к экрану альбомов. .

Смежные вопросы