2016-06-02 13 views
0

私のionic 2アプリケーションでpopTo(http://ionicframework.com/docs/v2/api/components/nav/NavController/#popTo)を使用します。これはViewControllerを必要とします(http://ionicframework.com/docs/v2/2.0.0-beta.7/api/components/nav/ViewController/イオン2 popContのViewController

私は、インターネット上に存在するドキュメントをpopToで使用できるViewControllerとしてページを作成する方法を理解できません。

誰かがpopToを使用しましたか?どんなヘッドアップ!

答えて

4

NavController.getByIndex(int index)はViewControllerを返しますので、this.navCtrl.popTo(getByIndex(index))を使用できます。

適切

import { NavController } from 'ionic-angular'; 

class MyComponent { 
    constructor(public navCtrl: NavController) { 

    } 
} 

は参考のためにここを参照してくださいNavControlelrを注入することを忘れないでください:あなたは、私が好む方法でのViewControllerを提供する場合も動作します) http://ionicframework.com/docs/v2/api/navigation/NavController/#getByIndex

+0

感謝'。 'getByIndex'はどのモジュールにありますか? Typescriptは 'getByIndex'を認識しません。 – shaikhspear

+1

'this.navCtrl.popTo(this.navCtrl.getByIndex(1));' 'getByIndex'は' NavController'のメソッドです – kamayd

+1

これはまだ機能し、正しい答えとしてマークする必要があります。しかし、kamaydのコメントを反映するように編集する必要があります。 – Johncl

1

this.navCtrl.popTo(をpopTo()に設定します。インデックスを変更するフローにページを追加する可能性があるため、インデックスに依存することは危険です。この方法で、ポップバックするページの名前を指定するだけです。

let popToViewController = Utilities.getViewController(this.returnPageName, this.navCtrl); this.navCtrl.popTo(popToViewController);

は私がからNavControllerからのViewControllerを取得するユーティリティメソッドを作成する必要がありました:あなたはgetByIndex(int型のインデックス) `の詳細な情報を提供してくださいすることができ、ご返信用

public static getViewController(pageName: string, navController: NavController): ViewController { for (let viewController of navController.getViews()) { if (viewController.name == pageName) { return viewController } } return null; }

+0

私はまったく同じユーティリティメソッドを書いてしまった。私が実行している問題は、minificationプロセス中に '.name'値を消去してしまうことです。スタックを歩いてページ名を探すことはできません。 : –

+0

あなたは右のCodyです。--prod --releaseを使ってイオンプロジェクトをビルドした後、nameプロパティはもはや利用できません。実際のnavcontrollerをnav paramsまたはglobalsに渡すようにコードを変換しています。より良い解決策を私に教えてください。 –