Appcelerator Titanium,获取当前窗口并应用属性不起作用

时间:2013-04-15 17:42:23

标签: titanium appcelerator navbar

我正在尝试将iOS中的右侧导航按钮添加到Titanium中的窗口。

代码只是Titanium提供的原始“主/详细”启动模板,然后在MasterView.js中,我尝试在导航栏中添加一个按钮。

但它不像预期的那样有效:

var addBtn = Ti.UI.createButton({
    systemButton:Ti.UI.iPhone.SystemButton.ADD
});
//self.setRightNavButton(addBtn);
var win1 = Titanium.UI.currentWindow;
win1.setRightNavButton(addBtn);

失败并显示错误:

  

[错误]:脚本错误='未定义'不是对象(评估   MasterView.js上的'win1.setRightNavButton')(第14行)。

如何将此按钮添加到导航栏呢?我已经看过一些例子,但他们都依赖于导航栏的声明。在这种情况下,这是不可能的,因为Titanium在AplicationWindow.js中声明了特定于每个平台的导航栏,然后调用MasterView.js函数和文件,我应该定义导航栏按钮。

2 个答案:

答案 0 :(得分:0)

如果已经打开了一个窗口,

Ti.UI.currentWindow仅适用 。您遇到的错误来自于创建MasterView时尚未打开窗口的事实。

在ApplicationWindow.js中查看,您将看到在打开窗口之前创建主视图。

如果要设置导航栏项,请将它们添加到ApplicationWindow,app.js中,或将窗口传递给MasterView。

答案 1 :(得分:0)

仅当使用Ti.UI.currentWindow参数打开窗口时,

url才有效。在这种情况下,url参数引用的控制器将Ti.UI.currentWindow属性设置为窗口。