There’s an open issue about this:
As a workaround try the suggestion in the linked post:
In your case you should update your code this way:
this.nav.present(this.loading).then(() => {
if (this.user.login(this.login.username, this.login.password)) {
//this.loading.dismiss();
this.viewCtrl.dismiss();
this.nav.setRoot(DashboardPage);
}
else {
this.loading.dismiss();
}
});