Theoretically, we should be able to get the current view controller being presented by calling something like:
NSString *viewControllerName = NSStringFromClass([[UIApplication sharedApplication].keyWindow.rootViewController class]);
Additionally, we can subscribe with KVO to the key window, its root view controller and if we want to, to changes in any navigation/page controller in the hierarchy.