If I push view controllers and/or present modal view controllers on a UINavigationController
, how can I find out what is the top most UIViewController
? Or in my case, I want to know if a certain UITableViewController
is the top most or not.
I tried using:
self.navigationController.topViewController == self
... but this doesn't work. I'm guessing that it's failing because I'm presenting modal view controllers on top of it and that the topViewController
only keeps track of which views were pushed on the UINavigationController
(as opposed to those that were presented modally).
In addition, you can check for UINavigationController and ask for its topViewController or even check for UITabBarController and ask for selectedViewController . This will get you the view controller that is currently visible to the user.
An UIViewController is just the base class of this already defined "View Controller", you add a viewController as you said, but a viewController has a class associated to it, that can be a UIViewController, UITableViewController, or variations/subclasses.
You want visibleViewController
:
The currently visible view can belong either to the view controller at the top of the navigation stack or to a view controller that was presented modally.
NSArray *viewContrlls=[[self navigationController] viewControllers]; [viewContrlls lastObject];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With