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

发布于 2024-10-18 13:31:03 字数 1000 浏览 5 评论 0原文

我目前正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

短叹 2024-10-25 13:31:03

我已经解决了这个问题。

这是我修改后的源代码: 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.

桃酥萝莉 2024-10-25 13:31:03

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文