如何在Titanium中弹出特定的前一个窗口?

时间:2012-07-12 18:26:52

标签: window titanium appcelerator pop

我从

推出了窗口
  

A-> B-> C-> d

其中D是最终窗口,我必须返回窗口 A 。我将如何用钛制成呢?

3 个答案:

答案 0 :(得分:2)

你可以像使用

那样使用fireEvent

只需将此代码添加到B窗口

即可
  Ti.App.addEventListener('closeWinB',function(e){
    B.close();
});

如果要重定向到窗口A

,请在下面写下代码
Ti.App.fireEvent('closeWinB');

希望它对你有用....

答案 1 :(得分:1)

使用视图而不是窗口。

创建一个这样的窗口:

var PAC = Titanium.UI.createWindow({  
    title:'PAC',
    backgroundColor:'#fff'
});

将您的视图设置为“其他屏幕”或新窗口。 您可以使用全屏像素大小或相对单位100%

来实现此目的
var viewInputData = Ti.UI.createView({
    backgroundColor:'#fff',
    top:0,
    left:0,
    width:'800px',
    height:'600px',
    zIndex:1
});

var viewOutputData = Ti.UI.createView({
    backgroundColor:'#fff',
    top:0,
    left:0,
    width:'100%',
    height:'100%',
    zIndex:0

});

请注意zIndex值,zIndex值是视图应放置在“顶部”的方式。 在这种情况下,viwOutputDaata位于viewInputData下方。

创建一个按钮来触发事件。 此窗口将切换zIndex值,该值将显示文本字段的值:

var  viewInputDataButton = Titanium.UI.createButton({
    width:120,
    height:111,
    top:10,
    backgroundImage: 'bp/images/square_button_1010.jpg',
    backgroundSelectedImage : 'bp/images/square_button_1001.jpg'
});

// declare a input view where your data will live
var viewInputNombre=Ti.UI.createTextField({
    borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
    backgroudColor: 'white',
    top: 250,
    font: {fontsize: 80, fontWeight: 'arial'},
    textAlign: 'center',
    borderWidth:5,
    borderColor: 'black',
    borderRadius:3,
    height:50,
    width: 170

});

// add input to view 
viewInputData.add(viewInputNombre);

现在创建并添加下一个视图的按钮

var  viewOutputDataButton = Titanium.UI.createButton({
    width:120,
    height:111,
    top:10,
    backgroundImage: 'bp/images/square_button_1001.jpg',
    backgroundSelectedImage : 'bp/images/square_button_1010.jpg'
});

// Create a simple label
var label2 = Titanium.UI.createLabel({
    color:'#999',
    text:'I am View 2',
    font:{fontSize:20,fontFamily:'Helvetica Neue'},
    textAlign:'center',
    width:'auto'
});

// add label to view 
viewOutputData.add(label2);

以下是使用zIndex属性切换两个视图的方法。 在view1创建按钮的事件监听器,负责处理此开关:

viewInputDataButton.addEventListener('click', function(e){
    label2.setText(viewInputNombre.getValue());
    viewOutputData.setZIndex(viewInputData.zIndex+1); // zIndex change
});

秘诀是,你知道按钮1上的视图是“在顶部”并且具有“max zindex” 所以..你将zIndex添加到焦点视图的当前zIndex上方,然后弹出视图 到顶部...

viewOutputDataButton.addEventListener('click', function(e){
    viewInputData.setZIndex(viewOutputData.zIndex+1);
});

同样,按钮只返回原始窗口......

// add buttons
viewInputData.add(viewInputDataButton);
viewOutputData.add(viewOutputDataButton);

// add the views to the window
PAC.add(viewInputData);
PAC.add(viewOutputData);

// open it... 
PAC.open();

答案 2 :(得分:0)

根据您的应用程序结构,您通常可以执行类似以下操作:

button.addEventListener('click', function(){
    A.open({
        animated: true
    )}
})