Gyors figyelmeztetés: Ne használja a destrukciót () az ionic2 betöltő ViewControllerén. Nemkívánatos hatásokat okozhat. Ehelyett használja a dismiss() függvényt.

Helytelen:

loading() {
    let loading = Loading.create({content: "loading"});
    setTimeout(()=>{
        //!!wrong!!
        loading.destroy();
    },1000);
    this.nc.present(loading);
}

Amint láthatja, a betöltő ViewController-ben a delete() hívás a következő ‹ion-select› elem nem megfelelő működését okozza. Ez főleg egy Ionic 2 Modalon volt megfigyelhető. A Modal komponens teljes szövege a végén található

Helyes:

loading() {
    let loading = Loading.create({content: "loading"});
    setTimeout(()=>{
        //!!right!!
        loading.dismiss();
    },1000);
    this.nc.present(loading);
}

Teljes kód, hogy kipróbáld magad:

import {Component} from "@angular/core";
import {NavController, ViewController, Loading} from "ionic-angular";

@Component({
    template:
        `
        <ion-content padding class="about">
        
          <button (click)="cancel()">Cancel</button>
          <h2>first:</h2>
          <button (click)="loading()">trigger loading</button>
        
          <h2>then:</h2>
          <ion-list>
            <ion-item>
              <ion-label>Select</ion-label>
              <ion-select #selected (ngModelChange)="onSelected($event)">
                <ion-option *ngFor="let s of list">s.value</ion-option>
              </ion-select>
            </ion-item>
          </ion-list>
        </ion-content>

        `

})
export class AboutPage {
    constructor(private nc:NavController, private viewCtrl:ViewController) {
    }

    list = [
        {value: "foo", text: "bar"},
        {value: "foo2", text: "bar3"},
        {value: "foo3", text: "bar3"},
    ];

    cancel() {
        this.viewCtrl.dismiss();
    }

    loading() {
        let loading = Loading.create({content: "loading"});
        setTimeout(()=>{
            //!!right!!
            loading.dismiss();
        },1000);
        this.nc.present(loading);
    }
}