Max Woolf
Max Woolf

Reputation: 4058

Using Modal View Controllers and UIVisualEffectView

I'm trying to solve the problem described in this blog post: http://justabeech.com/2014/10/22/using-uivisualeffectview-in-a-modal-view-controller/

I have a UIViewController with a storyboard modal segue to another UIViewController of which the UIView has a background colour of [UIColor clearColor]and a UIVisualEffectView.

When I present the view controller, the visual effect is blurred until the transition is completed and then the background turns grey again (exactly as displayed in the gif on that blog post).

enter image description here

I set the Modal Transition Style to FullScreen as specified, but still the same problem remains. What else could I be missing to make this work?

EDIT: Also, I get the following error:

Warning: Attempt to present <ClocksDetailViewController: 0x7ff89cb5bc70> on <ClocksViewController: 0x7ff89c8afe90> whose view is not in the window hierarchy!

Thanks

Upvotes: 11

Views: 2403

Answers (2)

Robert Wagstaff
Robert Wagstaff

Reputation: 2674

You need to set the modal presentation style of the UINavigationController, instead of the the UIViewController.

UINavigationController* navigationController = [[UIStoryboard storyboardWithName:@"myStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"myViewController"];
navigationController.modalPresentationStyle = UIModalPresentationOverFullScreen;

Upvotes: 0

Sulthan
Sulthan

Reputation: 130082

You have probably used UIModalPresentationFullScreen instead of the correct UIModalPresentationOverFullScreen.

With the old UIModalPresentationFullScreen all the views under the presented controller are removed from the view hierarchy once the animation ends.

Upvotes: 17

Related Questions