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.