1

我目前正在使用 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

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

4

2 回答 2

2

我已经解决了这个问题。

这是我修改后的源代码: http: //pastie.org/private/ycown2e6tracfvdukz29uw

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

我将表格视图行单击事件代码和 win.add(tableView) 代码移到 loader.onload 事件代码和嘿-presto 之外,这一切都按计划工作!

希望这可以帮助其他人。

于 2011-02-22T12:49:25.053 回答
1

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

于 2011-02-22T12:09:05.333 回答