hidesBarsOnSwipe never shows navbar again when scrolling up

I had same issue. When I added the code for hiding status bar along with navigation bar, it worked.

- (BOOL)prefersStatusBarHidden {
  return self.navigationController.isNavigationBarHidden;
}

I had the same problem but with a web view. The problem was that the top constraint of the web view was "Top Layout Guide.Top" , after changing the top constraint to "Superview.Top" the problem was solved.


To expand on Oleg's answer...

If you are using Interface Builder to set a constraint to a view controller's primary view, Xcode defaults to showing options to set the vertical constraint against the top layout guide. However, if you press 'Option', you will see an alternate set of constraints. The constraint for 'Top Space to Container' is what you're looking for.