Swift4以前の情報があまりに多い。storyboardを使わない画面遷移も古い情報があまりに多すぎる。
結論:presentを使う。ただしUIViewControllerに限る。
よくnavigationController.pushViewControllerが画面遷移の方法として書かれているが、UIViewControllerでは使えない。navigationControllerはUINavigationControllerで使う。
UIViewControllerで画面遷移を行うには
let mainViewController = MainViewController()
self.present(mainViewController, animated: true, completion: nil)
などとする。presentの第一引数に次の画面(これはUIViewControllerである必要があるのか? よくわからない)のインスタンスを指定する。
presentViewControllerという関数を説明している人がいるが、Swift4ではpresentになっている。