It is necessary to pass the parameter through the intermediate NavController.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"A1"]) { int *param = 999; UINavigationController *destViewController = segue.destinationViewController; tvc3 *destController = [[navigationController viewControllers] objectAtIndex:0]; destController.param = param; 

It gives errors - does not know navigationController и viewControllers . How else can you?

Update

Replaced string

 tvc3 *destController = [[destViewController.navigationController viewControllers] objectAtIndex:0]; destController.param = param; 

No more swearing. But the parameter does not change in the final controller remains empty.

    0