ios - dismissViewControllerAnimated not passing back data to vc1 -
i have vc1 , vc2. need vc2 set vc1's variable when vc2 dismissed.
this relevant code in vc1.h
- (ibaction)btnclick:(id)sender; @property (strong, nonatomic) nsstring *mystr;
this relevant code in vc1.m
- (ibaction)btnclick:(id)sender { uistoryboard * storyboard = self.storyboard; nsstring * storyboardname = [storyboard valueforkey:@"name"]; //in storyboard named vc2 "ctrl2" identifier viewcontroller2 *temp = [[uistoryboard storyboardwithname:storyboardname bundle:nil] instantiateviewcontrollerwithidentifier:@"ctrl2"]; [self presentviewcontroller:temp animated:yes completion:null]; } - (void)viewwillappear:(bool)animated{ nslog(@"in viewwillappear mystr %@", self.mystr); } - (void)viewdidload{ [super viewdidload]; nslog(@"my str %@", self.mystr); }
this relevant code in vc2.h
@class viewcontroller; - (ibaction)btnclkd:(id)sender; @property(nonatomic, weak)viewcontroller *vc1obj;
this relevant code in vc2.m
- (ibaction)btnclkd:(id)sender { self.vc1obj.mystr = @"test"; nslog(@"setting mystr v2"); [self.presentingviewcontroller dismissviewcontrolleranimated:yes completion:nil]; }
viewdidload in vc1 dont triggered when vc2 dismessed. have tried log both in viewdidappear , viewwillappear. in both case, mystr null. doing wrong?
it looks me though never setting vc2.vc1obj
.
my recommendation in vc1's - (ibaction)btnclick:(id)sender;
this:
- (ibaction)btnclick:(id)sender { // in storyboard named vc2 "ctrl2" identifier viewcontroller2 *temp = [self.storyboard instantiateviewcontrollerwithidentifier:@"ctrl2"]; temp.vc1obj = self; [self presentviewcontroller:temp animated:yes completion:null]; }
Comments
Post a Comment