How to find out if a UIViewController is the root view controller?
basically I want to know if the view controller I'm in is the root view controller or not.开发者_StackOverflow
If its not I want to put a button in the nav bar that says "back" (as if it were a proper back button - this bit I know how to do).
Before you ask, I have removed all the titles from my view controllers - I didn't want them to show up on my navigation bar... its very complicated - but this means that when I go through my navigation stack none of the pushed view controllers have a back button. :/
Thanks Tom
if ( self != [self.navigationController.viewControllers objectAtIndex:0] )
{
// Put Back button in navigation bar
}
You can also try:
if (self.navigationController.viewControllers.count == 1) {
NSLog(@"self is RootViewController");
}
Here's a swift version:
// Only works if checking from within the NavigationController:
navigationController?.viewControllers.first == self
// Works if you only have a reference to the NavigationController:
navigationController?.topViewController == navigationController?.viewControllers.first
精彩评论