Storyboard - Hiding top bar of navigation controller programmatically
Finally solved it. You should always hide navigation bar only through viewController.
In my question above I instantiated a whole new navigationController which didn't point at the real navController on the screen. You can obtain the "real" one through the view controller like this:
[viewController.navigationController setNavigationBarHidden:YES animated:YES];
There are 2 ways to hide top bar of Navigation Controller:
[self.navigationController setNavigationBarHidden:YES animated:YES];
2) Using Interface Builder
You can uncheck "Shows Navigation Bar" in property list of Navigation Controller.