Ни одно из решений не работало на iOS 5.1.1
Решение Тима работало на iOS 4.2.1
Единственный способ исправить проблему на iOS 5.1.1 - это
-(void)viewDidAppear:(BOOL)animated
{
double delayInSeconds = 0.01;
dispatch_time_t popTime =
dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[[UIApplicationsharedApplication] setStatusBarHidden:NO];
});
, что очень смешно и неправильно.
Я потратил полдня на поиск решения, а затем решил просто использовать подход AVFoundation, и мне потребовался час, чтобы реализовать тот же базовый захват фотографий, который мне был необходим, с помощью AVCaptureSession и AVCaptureStillImageOutput. И это тоже работает лучше - AVCaptureSession запускается быстрее, чем UIImagePickerController, а AVCaptureVideoPreviewLayer имеет гораздо лучшую частоту кадров на современных устройствах по сравнению с предварительным просмотром камеры UIImagePicker.