sencha touch中实现页面之间的互相跳转

这两天应为一个页面跳转把我整的死去活来啊!官网的API不给力啊!资料太少了,害的我浪费了好长时间,最终还是弄好了,发现了一个关键问题所在:如果要使用Ext.getCmp()来得到视图或者页面组建就得在引用的页面中添加id属性,因为Ext.getCmp()是通过id来取东西的。明白这点后下面的事就好办多了。

首先在控制层里面定义按钮的事件,并映射组建。

config:{
        refs:{
            camera:'#cameraview',//拍照页面
            description:'#descriptionview',//问题描述页面
            corrective:'#correctiveview',//整改要求页面
            captureButton:'button[action=captureButton]',//#拍照#拍照按钮
            selectButton:'button[action=selectButton]',//#拍照#选择照片按钮
            btnCameraNext:'button[action=btnCameraNext]',//#拍照#下一页按钮
            btnCameraSave:'button[action=btnCameraSave]',//#拍照#保存按钮
            selectTemplate:'button[action=selectTemplate]',//#问题描述#选择模板按钮
            btnDescriptionBack:'button[action=btnDescriptionBack]',//#问题描述#上一步按钮
            btnDescriptionSave:'button[action=btnDescriptionSave]',//#问题描述#保存按钮
            btnDescriptionNext:'button[action=btnDescriptionNext]',//#问题描述#下一页按钮
            btnCorrectiveBack:'button[action=btnCorrectiveBack]',//#整改要求#上一步按钮
            btnCorrectiveSave:'button[acyion=btnCorrectiveSave]',//#整改要求#保存按钮
            btnCorrectiveSubmit:'button[action=btnCorrectiveSubmit]'//#整改要求#提交按钮
        },
        control:{
            //按钮事件
            captureButton:{
                tap:'onCaptureButton'
            },
            selectButton:{
                tap:'onSelectButton'
            },
            btnCameraNext:{
                tap:'onCameraNext'
            },
            btnDescriptionBack:{
                tap:'onDescriptionBack'
            },
            btnDescriptionNext:{
                tap:'onDescriptionNext'
            },
            btnCorrectiveBack:{
                tap:'onCorrectiveBack'
            },
        }
    }


下面是具体的上一页、下一页的翻页事件。虽说有点繁琐,但功能算是实现了。

//向左翻页
slideLeftTransition:{
    type: 'slide',
    direction: 'left'
},
//向右翻页
slideRightTransition: {
    type: 'slide',
    direction: 'right'
},
onCameraNext:function(){
    Ext.Viewport.animateActiveItem(
        Ext.getCmp('descriptionview'),
        this.slideLeftTransition
    );
},
onDescriptionBack:function(){
    Ext.Viewport.animateActiveItem(
        Ext.getCmp('cameraview'),
        this.slideRightTransition
    );
},
onDescriptionNext:function(){
    Ext.Viewport.animateActiveItem(
        Ext.getCmp('correctiveview'),
        this.slideLeftTransition
    );
},
onCorrectiveBack:function(){
    Ext.Viewport.animateActiveItem(
        Ext.getCmp('descriptionview'),
        this.slideRightTransition
    );
}



原文地址:https://www.cnblogs.com/fyq891014/p/2990426.html