Titanium:无法在选项卡式应用中获取当前窗口

时间:2014-05-06 15:36:56

标签: android ios tabs titanium

我需要在选项卡式应用程序中获取当前窗口。

我试过

var win = Ti.UI.currentTab.window();

var win = Ti.UI.currentWindow;

但在两种情况下都会出现Uncaught TypeError: Cannot call method 'window' of undefined错误。

3 个答案:

答案 0 :(得分:0)

如果您使用的是TabGroup,则可以通过activeTab property访问当前窗口。它不是全局函数,因此您必须在代码中保持对TabGroup对象的引用:

var tabGroup = Ti.UI.createTabGroup({ tabs: createTabs() });
tabGroup.activeTab.window

答案 1 :(得分:0)

当您可以从currentTab分离多个JavaScript上下文时,

currentWindowTi.UI.createWindow({ url: 'foo.js' })都是遗留物。我建议你不要使用它们。

当您需要从应用的某个部分与其他部分的用户界面进行通信时,有几种模式可供选择。

第一个选项:监听并点击事件Ti.App.addEventListener('foo', function(data){})Ti.App.fireEvent('foo', { })。这很好地解耦了代码,因此您可以在不更改激活代码的情况下移动UI处理代码。

第二个选项:通过模块公开UI对象。在您的控制器中,exports.win = $.win;

第3个选项:设置全局对象:Alloy.Globals.win = $.win;

答案 2 :(得分:0)

好的,在合金框架中,我们只需使用$ sign来获取在.xml文件中创建的所有控件......

因此,如果您在.xml文件中设置窗口标记的ID,那么您可以通过以下示例获取当前窗口...

.xml文件

<Alloy>
   <Window id="win">
   </Window>
</Alloy>

.js文件

var win = $.win

所以从上面的代码中你可以得到你当前的窗口。

希望你明白。