こんにちは、開発者がクロス プラットフォーム アプリを作成できるようにするチタンは初めてです。Android と iOS の両方で動作するナビゲーション グループを作成する必要があります。明確な解決策はありますか ( Ti.UI.iPhone.createNavigationGrou() は iphone でのみ機能するため、
ありがとうございました
AndroidおよびiPhoneフォルダーにある次のNavigationControllerがあります。
アンドロイド
var NavigationController = function() {
var self = this;
self.open = function(windowToOpen) {
//make "heavyweight" and associate with an Android activity
windowToOpen.navBarHidden = windowToOpen.navBarHidden || false;
if(!self.rootWindow) {
windowToOpen.exitOnClose = true;
self.rootWindow = windowToOpen;
}
windowToOpen.open();
};
self.close = function(windowToClose) {
windowToClose.close();
};
return self;
};
module.exports = NavigationController;
アイフォン
var NavigationController = function() {
var self = this;
function createNavGroup(windowToOpen) {
self.navGroup = Ti.UI.iPhone.createNavigationGroup({
window : windowToOpen
});
var containerWindow = Ti.UI.createWindow();
containerWindow.add(self.navGroup);
containerWindow.open();
};
self.open = function(windowToOpen) {
if(!self.navGroup) {
createNavGroup(windowToOpen);
}
else {
self.navGroup.open(windowToOpen);
}
};
self.close = function(windowToClose) {
if(self.navGroup) {
self.navGroup.close(windowToClose);
}
};
return self;
};
module.exports = NavigationController;
次に、それを使用できます(ランタイムに基づいて正しいものを自動的に取得します):
var NavigationController = require('NavigationController')
var MyView = require("ui/MyView");
var controller = new NavigationController();
var myView = new MyView(controller);
controller.open(myView);
ウィンドウを引き続き開くことができ、それらはスタックに置かれます。最初のビューにコントローラーを渡したことに注意してください。あなたはそれを続けます:
controller.open(new SecondView(controller));
back
ボタンは自動的にスタックから物をプッシュします。プログラムで行う必要がある場合は、コントローラーに閉じるように指示してください。
controller.close(myView);