According to
What's the best way to communicate between view controllers?
best practices for communication between ViewControllers is to inject your dependencies into the stack. And not to use delegate.
How do you do that when using Interface Builder? For example I have a *navController variable in AppDelegate. I'd like to work with that variable in a TableView down the line. How do I access the *navController variable from the TableView class? Is there a way to inject it?
(I know I can use [self.navigationController] in this particular case but I'm asking from a general point of view.)