我需要在选项卡式应用程序中获取当前窗口。
我试过
var win = Ti.UI.currentTab.window();
和
var win = Ti.UI.currentWindow;
但在两种情况下都会出现Uncaught TypeError: Cannot call method 'window' of undefined
错误。
答案 0 :(得分:0)
如果您使用的是TabGroup,则可以通过activeTab property访问当前窗口。它不是全局函数,因此您必须在代码中保持对TabGroup对象的引用:
var tabGroup = Ti.UI.createTabGroup({ tabs: createTabs() });
tabGroup.activeTab.window
答案 1 :(得分:0)
currentTab
分离多个JavaScript上下文时, currentWindow
和Ti.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
所以从上面的代码中你可以得到你当前的窗口。
希望你明白。