You can't send the notification to the search view controller as you've rightly surmised that it hasn't been created yet. There are two basic ways I know how to solve this problem:
A) (The bad way) Load the search view controller when the main tab bar controller loads - increases memory load unnecessarily (what if the user never searches?)
B) (The good way) Create a public NSString property on both your search view controller and your home tab controller. Then, set the tab bar controller as an observer of the "SearchFromHome" notification (which it sounds like you might already be doing since you said you are able to get the tab to switch programatically). The tab bar controller should have a method in it that is activated when that notification is posted. In that method check to see if a search view controller has been created, if so, switch to it and set the NSString 'searchText' property to whatever search string was entered in the home tab controller. If it hasn't been created, then create it and set the search string.
Rough Example Code:
//In TabBarController.m
//Be sure to set this class instance as an observer of @"SearchFromHome" notifications
//with the target being the method below
-(void)searchTabActivator
{
if (!self.searchBarController) {
self.searchBarController = //Instantiate view controller code
}
self.searchBarController.searchText = self.homeTabController.searchText;
//Switch to search tab and perform search
}