iOS - How to check if a modal view is present

Evan Johnson picture Evan Johnson · Mar 17, 2011 · Viewed 44.5k times · Source

Is there a way to check if a modal view is present? I'd like to run a method only if a modal view is present. Also, if I have multiple modal views, is there a way to check if a certain modal view is present.

I use the following code to present and dismiss modal views:

    [self presentModalViewController:myModalView animated:YES];
    [self dismissModalViewControllerAnimated:YES];

Thank you in advance!

Cheers, Evan

PS. My modal view has a view controller, but I'd like to check if the modal view is present from a separate class that is running asynchronously.

Answer

arlomedia picture arlomedia · Jul 15, 2011

Are you checking the presence of a modal view controller from the parent view controller? If so, you can just check that view controller's modalViewController property:

BOOL modalPresent = (self.modalViewController);

If you want to check for a particular modal view controller, you can get the modal view controller's class name like this:

NSString *modalClassName = NSStringFromClass([self.modalViewController class]);