Чтобы частично ответить на мой собственный вопрос, лучшее, что я смог до сих пор придумать, это:
- (void)imagePickerController:(UIImagePickerController*)picker
didFinishPickingMediaWithInfo:(NSDictionary*)info
{
[picker viewWillDisappear:YES];
[self performSelector:@selector(processPickerImage:)
withObject:[[info objectForKey:UIImagePickerControllerOriginalImage] retain]
afterDelay:0.1];
}
-(void) processPickerImage:(UIImage *)uiImage
{
// do stuff
[self dismissModalViewControllerAnimated:YES];
// dismiss your custom overlay etc.
[uiImage release];
}
Это на самом деле не оживляет радужную оболочку, но, по крайней мере, сразу появляется на экране, так чтопользователь признает, что фотографирование сделано.Я также не очень рад, что viewWillDisappear вызывается дважды на UIImagePickerController - я не уверен, что он гарантированно безопасен.
Кроме того, над радужной оболочкой появляется строка состояния.
Надеюсь, у кого-то есть лучшее решение?