Titanium.UI.currentTab.open 复制窗口/窗口未关闭?
我目前正在使用 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
I'我们还有一个显示该问题的视频:http://www.youtube.com/watch?v= 1_1zlXf__UE
非常感谢您的任何想法或建议。
I'm developing an iPhone app at the moment using Appcelerator Titanium which has 3 tabs in a tab group.
My app.js can be found here: http://pastie.org/private/zoignwv05l9t6pbrfm01dw
In the 'Company Search' tab group, I've been working on a Table View which loads data using an XHR keyword search (I've added a search box using Titanium.UI.createSearchBar with various event handlers for changing search, cancelling search). We'll call the first search results table view tier 1.
The search part works fine and I've set up a click event for the table view which works perfectly, opening a new window. We'll call this tier 2.
The problem is that if I click on the back button on tier 2 (returning me to my tier 1 results) and modify my search to something new, a new XHR request is made to refresh the table view data. If I then click one of these new results, the tier 2 window opens, but I can see a duplicated tier 2 window beneath it. Clicking the back button on the new tier 2 window takes me up the window hierachy to a duplicated tier 2 window.
It's almost as if when back is clicked on tier 2, the window is animated out of view but not removed (as I would expect).
I hope this makes sense. It's hard to describe.
Here's my company-search.js tab code: http://pastie.org/private/jdwiuasivd3zrnhcqbqxw
I've also got a video showing the problem: http://www.youtube.com/watch?v=1_1zlXf__UE
Thanks so much in advance for any ideas or recommendations.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我已经解决了这个问题。
这是我修改后的源代码: http://pastie.org/private/ycown2e6tracfvdukz29uw
根据我的计算结果,每次调用第一个 XHR 请求时,我似乎都会将表视图添加到当前窗口。
我将表视图行单击事件代码和 win.add(tableView) 代码移到 loader.onload 事件代码之外,嘿,很快,一切都按计划进行!
希望这可以帮助其他人。
I've fixed this problem.
Here is my amended source code: http://pastie.org/private/ycown2e6tracfvdukz29uw
From what I work out, I appeared to be adding the table view to the current window every time the first XHR request was called.
I moved the table view row click event code and the win.add(tableView) code outside the loader.onload event code and hey-presto, it all works as planned!
Hope this helps someone else out.
看起来这个问题发布在 Appcelerator 论坛。在 company_search.js 中,尝试根据上一个单击事件中的 e.rowData.url 检查 tableViews 单击事件中的 e.rowData.url。如果相同,则不要在当前选项卡中打开窗口。
It looks like the issue posted in Appcelerator forums. In company_search.js try checking e.rowData.url in the tableViews click event against the e.rowData.url from the previous click event. If it is same, do not open the window in the current tab.