Being a newbie is frustrating - and it will be frustrating for a long time to come. There are no shortcuts to learning this stuff.
There are many ways to do what you want to do. I’m going to give you the simplest way. In time, you will learn more robust and difficult ways, but for now, this will work.
If you have view controllers in tab bar controller, and would like them to be able to pass data back and forth, you will have to give the view controllers instance variables that point to the other view controllers.
For example, if you had a MyFirstViewController and MySecondViewController in a UITabBarController, you would add a MySecondViewController instance variable to MyFirstViewController and expose it as a property:
@interface MyFirstViewController : UIViewController
@property (nonatomic, assign) MySecondViewController *otherViewController;
Then, when you create your view controllers, you would link them up. This most likely happens in the App Delegate.
- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)optionsDict
MyFirstViewController *firstVC = [[MyFirstViewController alloc] init];
MySecondViewController *secondVC = [[MySecondViewController alloc] init];
NSArray *vcs = [NSArray arrayWithObjects:firstVC, secondVC, nil];
UITabBarController *tbc = [[UITabBarController alloc] init];
MySecondViewController will implement methods that allow it to receive messages that have whatever data you want to pass as arguments, and MyFirstViewController will send these messages to its otherViewController instance variable.