0

我正在尝试将 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);

这失败并出现错误:

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

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

4

2 回答 2

0

Ti.UI.currentWindow在已打开窗口时才有效。您遇到的错误来自创建 MasterView 时尚未打开窗口的事实。

查看 ApplicationWindow.js 内部,您会看到您甚至在打开窗口之前就创建了主视图。

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

于 2013-04-16T21:36:58.683 回答
0

Ti.UI.currentWindow仅在使用该url参数打开窗口时才有效。在这种情况下,参数引用的控制器urlTi.UI.currentWindow属性设置为窗口。

于 2016-05-09T01:35:12.460 回答