Q: Unable to Add Bar Button Item Programatically func myPlaceViewMoreWasPressed() {
    print("myPlaceViewMore was pressed")

    let vc = MyPlacesViewController(nil)
    let nav = UINavigationController(rootViewController: vc)
    let dismissButton = UIBarButtonItem.init(title: "Dismiss", style: .plain, target: self, action: #selector(dismissButtonWasPressed))
    nav.navigationItem.leftBarButtonItem = dismissButton

    self.present(nav, animated: true, completion: nil)
}

Should be very straightforward... instantiate a ViewController, contain it in a navigation controller, init a UIBarButtonItem and set it the leftBarButtonItem of the nav. I've also tried it like this:
func myPlaceViewMoreWasPressed() {
    print("myPlaceViewMore was pressed")

    let vc = MyPlacesViewController(nil)
    let nav = UINavigationController(rootViewController: vc)
    let dismissButton = UIBarButtonItem.init(title: "Dismiss", style: .plain, target: self, action: #selector(dismissButtonWasPressed))
    nav.navigationItem.setLeftBarButton(dismissButton, animated: true)

    self.present(nav, animated: true, completion: nil)
}

But the button will not appear.

A: You need to update the navigationItem of the view controller, not the navigation controller. I would do that before setting the view controller as the root controller.
func myPlaceViewMoreWasPressed() {
    print("myPlaceViewMore was pressed")

    let vc = MyPlacesViewController(nil)
    let dismissButton = UIBarButtonItem.init(title: "Dismiss", style: .plain, target: self, action: #selector(dismissButtonWasPressed))
    vc.navigationItem.leftBarButtonItem = dismissButton

    let nav = UINavigationController(rootViewController: vc)

    self.present(nav, animated: true, completion: nil)
}

