Use the UITabBarViewController viewControllers property to access the array of view controllers in your tab bar controller. Typecast them according to your panel controller architecture. Then get a pointer to any of the view controllers using this array.
For example, your tab bar controller has 5 tabs, each tab has a UINavigationController that has a specific UIViewController as root view controllers. Suppose you want to set the value of the 3rd tab icon to your array of response arrays. You can do it like
[[[self.tabviewController viewControllers] objectAtIndex:2] setBadgeValue:[NSString stringWithFormat:@"%d",[myArray count]];
You can also go to a specific property of the visibility manager by specifying control controllers. for instance
MyViewController *myVc = (MyViewController*) [[(UINavigationController*)[[self.tabviewController viewControllers] objectAtIndex:2] viewControllers] objectAtIndex:0]; [myVc setPropertyName:propertyValue];
source share