Ionic 4 "loading" overlay comes up too late

I have a page change that takes a little long due some graphics and other things that need to load. I’m trying to implement a “loading” overlay that should show up immediately the button to change pages is clicked, and then disappears when the page that loads has finished loading. The problem is that the “loading” overlay only comes up briefly, after the page has finished loading. The relevant code is:

public goToMain() {
    this.presentLoading();
    this.router.navigateByUrl('/tabs/tab1');
}

async presentLoading() {
    this.loading = await this.loadingController.create({
      translucent:true,
      message:"Loading..."
    });
    await this.loading.present();
}  

How can I force the loading screen to be displayed before the navigation takes place?

Err, just saw in another post to use await on the navigation and then dismiss after that…