关闭窗口并打开一个新窗口钛合金

时间:2013-09-07 04:12:01

标签: javascript android xml titanium titanium-alloy

我需要关闭windows2才能打开windows3。我有下一个代码:我是钛的初学者,请帮助我。

    //Windows1.XML
    <Alloy>
        <Window exitOnClose="false">
            <Button   onClick="openWindows2" visible="false">
            </Button>
        </Window>
    </Alloy>
    CONTROLLER
    //Window1.js
    function openWindows2(e)
    {
      var Window2=Alloy.createController('Window2').getView();
      newWindows.open(); 
    }
    $.Windows1.open()

此代码是我在windows1 //Window2.XML

上使用第一个控制器打开的第二个视图
    <Alloy>
        <Window exitOnClose="false">
            <Button   onClick="openWindows3" visible="false">
            </Button>
        </Window>
    </Alloy>

控制器功能打开windows 3 //Window2.js

    function openWindows3(e)
    {
      var Window3=Alloy.createController('Window3').getView();
      newWindows.open(); 
    }
    $.Windows2.open()

我的Windows 3 //Window3.XML

    <Alloy>
        <Window exitOnClose="false">
            <Button  onClick="anotherFn" visible="false">
            </Button>
        </Window>
    </Alloy>
    //Window3.js
    $.Windows3.open()

3 个答案:

答案 0 :(得分:6)

您可以用XML定义窗口,例如mycoolwindow.xml。

然后从代码的其他部分开始:

 var win=Alloy.createController('mycoolwindow').getView();
 win.open();

请参阅此处的示例:https://github.com/ricardoalcocer/AlloyOpenWindow

或转到此链接:http://www.youtube.com/watch?v=CB26lUj0UBQ

答案 1 :(得分:1)

将此函数放在Window2.js中:

function openWindow3(){
Alloy.createController('Window3');
$.Window2.close();
}

window3.js:

$.Window3.open();

答案 2 :(得分:0)

首先,如果所有关闭窗口并同时打开一个新窗口在Android中不起作用。该应用程序崩溃。相反,我建议删除窗口中的所有孩子并隐藏它(仅适用于Android),对于IOS,您可以关闭它。这样也可以管理内存泄漏。

关于打开窗口,避免在占用内存时初始化新对象。直接使用open函数。例如:

Alloy.createController('mycoolwindow').getView().open();