Нет универсального встроенного способа сделать это. Лучшее решение, вероятно, состоит в том, чтобы добавить свойство делегату приложения, в котором вы можете его сохранить.
@property (nonatomic, retain) UIViewController *currentModalViewController;
Когда вы представляете модальные контроллеры вида, сделайте это:
#import "MyAppDelegate.h"
// ....
MyAppDelegate *appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
appDelegate.currentModalViewController = vc;
[self presentModalViewController:vc animated:YES];
Вы также должны убедиться, что теряете ссылку при отклонении:
[self dismissModalViewControllerAimated:YES];
MyAppDelegate *appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
appDelegate.currentModalViewController = nil;
Тогда в вашем делегате приложения у вас есть все, что нужно для того, чтобы закрыть текущий контроллер модального вида и проверить, присутствует ли в данный момент контроллер модального вида.