1

我是 Titanium 的新手,我遇到了一个问题。在我的 app.js 中,我包含一个左侧菜单和窗口控件(app.js 和 leftmenu.js)

当用户单击菜单项时,我想加载一个窗口。基本上,我想在用户选择主页按钮时加载 app.js 主窗口。为此,我在 leftmenu.js 文件中加入了以下代码:

var newWin = Titanium.UI.createWindow({
    url: "app.js",
    zIndex: 0
});
win.close(); // closing main window
leftMenu.close(); // closing left menu
newWin.open(); //should reload the main window and the leftmenu

它重新加载窗口,但所有控件都被禁用。我们不能点击任何控件。就像所有控件都在一个不可见的层下一样。任何想法 ?

我复制/粘贴代码部分,也许会更清楚:)

btnaccueil.addEventListener('click',function(e) {
   var newWin = Titanium.UI.createWindow({        
       url: "app.js",
       zIndex: 0
   });

   // Closing current instance for freeing memory
   win.close();
   leftMenu.close();
   newWin.open({animated:true});
   Ti.API.info(var_dump(newWin));
});
4

1 回答 1

0

你好,一个月后我知道了,但是你在使用require和exports/module.exports吗?这是一个关于如何以正确方式打开带有按钮事件的新窗口的示例,我认为不推荐使用 url 属性,所以我希望这个示例可以帮助您理解

员工.js

//Current window (employee window)
var employeeWin = Ti.UI.currentWindow;

//define button
var moveToDetailBtn = Ti.UI.createButton({
   width      : 200,      //define the width of button
   height      : 50,      //define height of the button
   title         : 'Show Detail'   //Define the text on button
});

//Click event to open the Employee Details window
moveToDetailBtn.addEventListener('click', function(){

   //Call a export function
   var win = require('employeeDetails').getEmployeeDetailSWin;

   //Create new instance
   var employeeDetailsWin = new win();

   //Open the Employee Details window
   employeeDetailsWin.open();
});

//Add the button to the window
employeeWin.add(moveToDetailBtn);

在employeeDetails.js 中

exports.getEmployeeDetailSWin = function(){

   //Creates a new window
   var empDetailsWin = Ti.UI.createWindow({
      backgroundColor   : '#ffffff'      //Define the backgroundcolor of the window
   });

   //Addin a label to the window
   empDetailsWin.add(Ti.UI.createLabel({
      width      : 100,      //Define width of the label
      height      : 50,      //Define height of the label
      title         : 'Employee Details'
   }));

   return empDetailsWin;
};

此外我不确定你是否可以导出你的 app.js 尝试使用新的 .js

于 2013-02-13T18:45:13.190 回答