5

こんにちは、開発者がクロス プラットフォーム アプリを作成できるようにするチタンは初めてです。Android と iOS の両方で動作するナビゲーション グループを作成する必要があります。明確な解決策はありますか ( Ti.UI.iPhone.createNavigationGrou() は iphone でのみ機能するため、

ありがとうございました

4

1 に答える 1

7

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);
于 2012-09-24T17:31:13.773 に答える