This was driving me crazy for the past couple of weeks. Solution I found was to add the refresh control in viewDidAppear.
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let refresh = UIRefreshControl(frame: .zero)
refresh.addTarget(self, action: #selector(pullToRefresh), for: .valueChanged)
myTableView.refreshControl = refresh
}