ios - 防止在 Appcelerator 中触发 TabGroup 双击事件

标签 ios titanium appcelerator titanium-mobile appcelerator-mobile

对于使用 Appcelerator Titanium SDK 3.1.2 开发的 iPad 应用程序,我有一个包含 5 个 Ti.UI.Tab 的 Ti.UI.Tab 组。每个选项卡都包含一个 Root Ti.UI.Window,某些选项卡会在相关时打开其他窗口。

当您双击选项卡组中的任何选项卡时,双击该选项卡会将其内容重置为根窗口,并自动关闭其中打开的窗口。

我想阻止这种情况的发生,但是 Tab 组或 Tab 本身都没有属性可以让我阻止双击发生。

最佳答案

使用 View 创建自己的 TabGroup 控件的另一种方法是在选项卡内添加一个 NavigationGroup 控件,以防止双击选项卡时重置 Windows。

在选项卡组的选项卡控件中,创建一个空的窗口控件并将其链接到选项卡,就像平常一样。然后,创建一个 NavigationGroup 控件并将其添加到选项卡的根窗口:

//Set up your Tab Group with a Tab and a Root Window for the Tab
var tabGroup = Ti.UI.createTabGroup();

var tabWin = Ti.UI.createWindow({
    navBarHidden:true
});

var tab = Ti.UI.createTab({
    window:tabWin
});
tabGroup.addTab(tab);

//Create a Root Window Control for the Navigation Group
var navWin = Ti.UI.createWindow({
    title:'NavGroup Root Window'
}); 

//Create a NavigationGroup Control and add it to the Root Window
var nav = Ti.UI.iPhone.createNavigationGroup({
    window: navWin
});
tabWin.add(nav);

//Launch Tab Group
tabGroup.open();

当您在此选项卡中打开 Windows 时,请使用 NavigationGroup.open(Window),而不是使用 Tab.open(Window) 方法。让 NavigationGroup 管理窗口堆栈而不是选项卡:

//Open a new Window inside the Navigation Group
var win1 = Ti.UI.createWindow();
nav.open(win1);

//Close this Window you opened
nav.close(win1);

通过这样做,当用户双击包含 NavigationGroup 对象的相关选项卡时,可以防止窗口堆栈重置。

关于ios - 防止在 Appcelerator 中触发 TabGroup 双击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20740332/

相关文章:

ios - 具有默认值的 Swift public var 并为该默认值运行 didSet

ios - 如何在打开新窗口时在钛合金中实现滑动过渡

Android Titanium Appcelerator - 路径必须是字符串。收到空值

javascript - 在 Titanium 中发送 post httpclient 请求

ios - AppDelegate:在解包可选值时意外发现 nil

javascript - 在移动设备上选择文本时覆盖 native 行为

ios - 如何在iOS模拟器中模拟同时触摸

android - 在Titanium中,如何在指定位置添加 View

javascript - 检测 Titanium 中的 mapView 上、下、左、右的移动