Showing alert in 'ionViewLoaded' or 'ionViewDidEnter' prevents page from loading


After a user has logged into the app, I try to show an alert right after the page has loaded. I tried to use ‘ionViewLoaded’ or ‘ionViewDidEnter’, but both do not behave as expected. The popup shows up, but stacked on top of the login page as if the landing page has never been opened.

I open the landing page after a successfull login:

  loginSucceeded() {
      .then(() => {

I open the popup with the following code in my ‘HomePage’ with the following code:

    ionViewLoaded() {
      .then((isFirstLogin) => {
        return Alert.create({
          title: 'Change your PIN!',
          message: 'Please change your pin! Navigate to \'Account\' and click \'Change PIN\'',
          buttons: ['OK']
      .then((alert) => {

and it shows up like this:


I would expect that these lifecycles are the right place to call popups and the login page does not exist anymore?
Any hints what the problem might be?

EDIT: A potential solution is setting a timeout of a few seconds which works then as expected.