【问题标题】:Titanium.UI.currentTab.open duplicating windows / window not closing?Titanium.UI.currentTab.open 复制窗口/窗口不关闭?
【发布时间】:2011-02-22 11:32:37
【问题描述】:

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

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

【问题讨论】:

    标签: window titanium appcelerator-mobile


    【解决方案1】:

    我已经解决了这个问题。

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

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

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

    希望这对其他人有所帮助。

    【讨论】:

    • 我还用更多的 cmets 使格式变得更好 :)
    【解决方案2】:

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

    【讨论】:

    • 感谢您的回复,我已经使用 Titanium.API.info() 在 tableViews 点击事件上跟踪它们,并且 e.rowData.url 的值不同。
    • 我尝试了类似于论坛链接的实现,但不幸的是它似乎不起作用。但据我所知,表格视图上的“点击”事件似乎触发了两次。
    • 奇怪的是,click 事件触发了两次,使用了两个不同的 rowData。但是,至少现在很明显,两次触发的 'click' 事件是同时打开两个窗口的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 2013-02-14
    • 2016-01-22
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多