画面上で、スワイプやタップをしたいときにnavigatonbarを非表示にするには、以下の設定のみで簡単にできちゃいます。
// スワイプをしたときにnavigatonbarを消したいとき
self.navigationController?.hidesBarsOnSwipe = true
// タップをしたときにnavigatonbarを消したいとき
self.navigationController?.hidesBarsOnTap = true
この設定では、画面上に表示されているtoolbarも同時に消えてくれるので、簡単にSafariっぽい動作を再現できます。
ただし、TabBarは上記の設定のようにジェスチャーで消すことはできないみたいなので、
UITabBarとUINavigationBarをスクロール時にサクッと隠す
みたいにゴリゴリ実装する必要があります。