I have problem with proper passing data between view's but not in standard way.
Picture describing my problem:

I performSegueWithIdentifier with one of two segue identifiers and then in I want to pass data to ViewController called "Firmy" or "Oddzialy".
Passing data code:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {   if ([[segue identifier] isEqualToString:@"sLogowanieFirmy"]) {       FirmyVC *firmyVC = [segue destinationViewController];       firmyVC.tabFirmy = self.tabFirmy;   }   if ([[segue identifier] isEqualToString:@"sLogowanieOddzialy"]) {       OddzialyVC *oddzialyVC = [segue destinationViewController];       oddzialyVC.wybranaFirma = [self.tabFirmy objectAtIndex:0];   } }   Problem is with method [segue destinationViewController] becouse destinationViewController for segue is NavigationViewController.
So what is proper way to pass data and have independent Navigation Controllers?
If you have a value in one view controller and want to pass it to another, there are two approaches: for passing data forward you should communicate using properties, and for passing data backwards you can either use a delegate or a block.
UINavigationController has a property called topViewController which returns the view controller that is at the top of the stack.
So your prepareForSegue: method may look something like this...
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {     if ([[segue identifier] isEqualToString:@"sLogowanieFirmy"]) {         UINavigationController *nav = [segue destinationViewController];         FirmyVC *firmyVC = (FirmyVC *)nav.topViewController;         firmyVC.tabFirmy = self.tabFirmy;     }      // etc... } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With