I have a tab bar controller and each tab consist of a navigation controller.
How can I access a specific view controller in a navigation controller in a tab so that I can access a property specific to the view controller?
I tried the following code:
//Get the navigation controller of the 3rd tab
self.tabController.selectedViewController
= [self.tabController.viewControllers objectAtIndex:2];
//Attempt to retrieve the viewcontroller I want from the tabcontroller
SomeViewController *svc = (SomeViewController *)self.tabController.selectedViewController;
//Attempting to access a BOOLEAN property in svc viewcontroller
svc.someProperty = YES;
The above code failed because it seems that “self.tabController.selectedViewController” returns me a navigation controller. How can I extend the code so that I can access “svc.someProperty”?
You can use
-topViewControllerto get the view controller from the navigation controller (or-visibleViewControllerif you are using modal view controllers).