Titanium.UI.currentTab.open复制窗口/窗口没有关闭?

时间:2011-02-22 11:32:38

标签: window titanium appcelerator-mobile

我目前正在使用Appcelerator Titanium开发iPhone应用程序,该选项卡在选项卡组中有3个选项卡。

我的app.js可以在这里找到:http://pastie.org/private/zoignwv05l9t6pbrfm01dw

在“公司搜索”标签组中,我一直在研究使用XHR关键字搜索加载数据的表格视图(我已经使用Titanium.UI.createSearchBar添加了一个搜索框,其中包含用于更改搜索的各种事件处理程序,取消搜索)。我们将调用第一个搜索结果表视图第1层。

搜索部分工作正常,我为表格视图设置了一个点击事件,它可以很好地工作,打开一个新窗口。我们称之为第2层。

问题在于,如果我单击第2层上的后退按钮(将我返回到我的第1层结果)并将我的搜索修改为新内容,则会发出新的XHR请求以刷新表视图数据。如果我然后单击其中一个新结果,则会打开第2层窗口,但我可以在其下方看到重复的第2层窗口。单击新第2层窗口上的后退按钮会将窗口层次结构转移到重复的第2层窗口。

几乎就像在第2层上单击后面一样,窗口在视图之外被动画化但未被删除(正如我所料)。

我希望这是有道理的。这很难描述。

这是我的company-search.js标签代码:http://pastie.org/private/jdwiuasivd3zrnhcqbqxw

我还有一个显示问题的视频:http://www.youtube.com/watch?v=1_1zlXf__UE

非常感谢您提出任何想法或建议。

2 个答案:

答案 0 :(得分:2)

我已经解决了这个问题。

以下是我修改过的源代码:http://pastie.org/private/ycown2e6tracfvdukz29uw

从我的工作开始,每次调用第一个XHR请求时,我似乎都会将表视图添加到当前窗口。

我将表视图行点击事件代码和win.add(tableView)代码移到了loader.onload事件代码和hey-presto之外,这一切都按计划运行了!

希望这有助于其他人。

答案 1 :(得分:1)

看起来问题发布在Appcelerator forums。在company_search.js中,尝试检查来自上一个click事件的e.rowData.url的tableViews click事件中的e.rowData.url。如果相同,请不要在当前选项卡中打开窗口。