Исходя из вопроса, который вы задаете, кажется, что вы хотите вызывать методы для UINavigationController, который находится выше в стеке. Все UIViewController уже имеют свойство navigationController, которое является UINavigationController, который является предком этого ViewController в стеке.
Так что, если у вас был RootViewController, называемый root, он в какой-то момент сделал это
FirstViewController * first = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];
[self.navigationController pushViewController:first animated:YES];
[first release];
Тогда first.navigationController == root.navigationController
Так что внутри первого звонка
[self navigationController]
передаст вам тот же самый навигационный контроллер, на который сначала был вставлен файл.