Question

How do you programmatically get the index in the tab bar (starts at 0 for leftmost tab) of a view controller, from within the View Controller File.

I am switching views with this:

[self.tabBarController setSelectedIndex:nextIndex];

and I want to be able to just set:

int nextIndex = currentIndex++;

How do I get that Current Index?

EDIT: All three of the below answers are correct, thanks guys. To be fair I will choose the one that was posted first.

Était-ce utile?

La solution

Get selected index:

NSUInteger selectedIndex = self.tabBarController.selectedIndex;

Get index of current ViewController (from within the VC):

NSUInteger selectedIndex = [self.tabBarController.viewControllers indexOfObject:self];

Set index:

NSUInteger nextIndex = selectedIndex + 1;
if(nextIndex < [self.tabBarController.viewControllers count])
    [self.tabBarController setSelectedIndex:nextIndex];

Autres conseils

You can get the current index of tabController with the property selectedIndex:

[self.tabBarController selectedIndex]

Also if you want get the index of a ViewController you can access to the array of the tabs with the property viewControllers.

Chech the Apple doc for more info.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top