Loading Indicator when pushing a page

Hi, im actually trying to show an loading indicator when pushing a new page, this is how im doing it;

  var loading = this.loadingCtrl.create({
            content: 'Please wait...'
    });
    loading.present();

    this.navCtrl.push(ListPage, {
      item: item
    });

But it looks like the push method gets called before the loading indicator is shown, result -> it shows only when the new page is pushed, not on the old page (while its pushing)

Is anyone able to help?

Solved it, do it like that and it works:

var loading = this.loadingCtrl.create({
            content: 'Please wait...',
            dismissOnPageChange:true
    });
    loading.present()
    .then(() => {

      this.navCtrl.push(ListPage, {
        item: item        
      
      });
    });