Here's the situation. I have 3 view controllers named as A, B and C.
I'm navigating from A to B and passing some string , call it as receivedMember.
In B when I write  NSLog(@"Name is %@", _receivedMember);    // it prints the value that was passed from A
Then from B, I'm navigating to C and again returning to B. So when I returned to B, I checked the value of name. It is null. 
  -(void) viewDidAppear:(BOOL)animated{
     NSLog(@"DID APPEAR %@\n", _receivedMember);   // (null)
    }
    -(void) viewWillAppear:(BOOL)animated
    {
       NSLog(@"WILL APPEAR %@\n", _receivedMember); // (null)
    }
EDIT Here is the code
In class A, A ---> B
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"searchpage"])
    {
        B *cl = segue.destinationViewController;
        cl.receivedMember = strMemberType;
    }
}
I'm getting the strMemberType from pickerview, 
-(void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
        strMemberType = [memberTypeArray objectAtIndex:row];
}
In class C, C ---> B
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"backToSearchSegue"])
    {
        B *cs = segue.destinationViewController;
    }
}
B.h
@property (nonatomic, copy) NSString *receivedMember;
How can I get the same value when I return to B from C.? I'm naive in iOS, so please help me out. Is there anyway I can store them in cache file? So that I can access it in any class.
 
     
     
     
    