Yes, you would use services. In general, you would do something like pass an id through the URL, which can be read by the activated route, and then you would use that id to look up the data you want in a service.
NavController is still available in Ionic 4 but the signatures have changed (i.e push/pop is no longer there).
However, I normally use a singleton service as communication bus between pages which I found to be far more powerful than navParams (i.e I don’t need to pass similar context around various pages, i just need to set it once etc… ).