Titanium mobileでNavigationWindowで数階層下にあるViewからRootWindowまで一気に戻る。
Titanium SDK:3.2.0
Alloy:1.3.0
iOSのnavigationControllerでpopToRootViewControllerAnimatedみたいな操作が出来ないかなーと思って、
色々調べたけど、標準ではAPIが用意されていないみたい。
したがって、遷移してきた画面をグローバル変数として
配列で保持して、それをFor文で一気にクローズする方法を試してみました。
・次の階層に遷移する際にグローバル変数の配列に画面を格納。
var nextView = Alloy.createController('nextController').getView(); // 他のControllerからアクセスできるようにグローバル変数に値を格納。 // Ti.App.NavigationViews = [] を予め定義しておくこと。 Ti.App.NavigationViews.push(nextView); // 予め、Ti.App.NavigationRootView = $.controller_name でルートビューを入れておく。 Ti.App.NavigationRootView.openWindow(nextView);
・Rootに戻るときは下記を記述。
for ( i = 0; i < Ti.App.NavigationViews.length; i++) { closeView = Ti.App.NavigationViews.length[i]; Ti.App.NavigationViews.length.closeWindow(closeView); } Ti.App.NavigationViews = [];
現在表示しているViewは一番最後に消すのがミソ。