То же самое происходило со мной после блокировки / разблокировки приложения, похоже, что шторка открывается на viewDidAppear.
Итак, я подписал свой родительский контроллер представления на UIApplicationDidBecomeActiveNotification
и повторно выполнил viewWillAppear вручнуюи методы viewDidAppear контроллера, содержащего UIImagePickerController
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationBecomeActive)
name:UIApplicationDidBecomeActiveNotification
object:nil];
.
.
.
- (void)applicationBecomeActive {
if (imagePicker_)
[imagePicker_ openShutter];
}
И затем на контроллере, содержащем UIImagePickerController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[imagePickerController_ viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[imagePickerController_ viewDidAppear:animated];
imagePickerController_.cameraFlashMode = cameraFlashMode_;
imagePickerController_.cameraDevice = cameraDevice_;
}
- (void)openShutter {
[imagePickerController_ viewWillAppear:YES];
[imagePickerController_ viewDidAppear:YES];
}
PS: Если вы попробуете это, не забудьте удалить наблюдателя
[[NSNotificationCenter defaultCenter] removeObserver:self];
Надеюсь, это поможет