sencha touch之界面之间的跳转

sencha touch界面之间的跳转

下面是跳转的公共类,要调用时记得把var VIEWPATH = ‘rota_persons.view.’;里面的rota_persons改成自己app.js里面name属性的值

// 页面跳转类
var ViewUtil = {

    createNew: function() {

        var viewutil = {};
        var viewArray = [];
        var VIEWPATH = 'rota_persons.view.';

        /*
         * 记录当前页面,并进入下一页面
         * viewId: 页面ID
         * className: 页面的userClassName
         * parm: 传递给下一页面的参数,为任何对象。用法: initialConfig.parm
         */
        viewutil.goNext = function(viewId, className, parm) {
            // 记录页面路径
            var currentView = Ext.Viewport.getActiveItem();
            var currentViewId = currentView.getId();
            var currentClassName = currentView.$className;
            viewArray.push({
                viewId: currentViewId,
                className: currentClassName
            });

            // 销毁残留页面(一般情况下不存在残留)
            var nextView = Ext.getCmp(viewId);
            if(nextView){
                nextView.destroy();
            }

            // 进入下一页面
            className = className || VIEWPATH + viewId;
            /*if(!className) {
                className = VIEWPATH + viewId;
            }*/
            nextView = Ext.create(className, {parm: parm});
            Ext.Viewport.setActiveItem(nextView);
//            Ext.Viewport.animateActiveItem(nextView,{ type: 'slide', direction: 'left' });
//            Ext.Viewport.animateActiveItem(nextView,{ type: 'fade' });
            //console.log(viewArray);
        };

        /*
         * 回到已记录的上一页面
         */
        viewutil.goLast = function() { 
            // 销毁当前页面
            Ext.Viewport.getActiveItem().destroy();

            // 取出上一页面
            var v = viewArray.pop();
            var viewId = v.viewId;
            var className = v.className;

            // 进入上一页面
            var lastView = Ext.getCmp(viewId);
            if(!lastView){
                lastView = Ext.create(className);
            }
            Ext.Viewport.setActiveItem(lastView);
//            Ext.Viewport.animateActiveItem(lastView,{ type: 'slide', direction: 'right' });
            //console.log(viewArray);
        };

        /*
         * 销毁已记录的路径,并直接打开指定页面
         * 参数同goNext
         */
        viewutil.go = function(viewId, className, parm) {
            var lastView;

            // 销毁当前页面
            lastView = Ext.Viewport.getActiveItem();
            if(lastView) {
                lastView.destroy();
            }

            // 销毁已保存的页面
            for(var i=0; i<viewArray.length; i++) {
                lastView = Ext.getCmp(viewArray[i].viewId);
                if(lastView){
                    lastView.destroy();
                }
            }
            viewArray = [];

            // 进入指定页面
            className = className || VIEWPATH + viewId;
            /*if(!className) {
                className = VIEWPATH + viewId;
            }*/
            var nextView = Ext.getCmp(viewId);
            if(!nextView) {
                nextView = Ext.create(className);
            }
            Ext.Viewport.setActiveItem(nextView);
            //console.log(viewArray);
        };

        return viewutil;

    } 
};
var viewUtil = ViewUtil.createNew();

返回时是viewUtil.goLast();
跳转是viewUtil.goNext(‘att_information_view’,‘Security_task.view.att_information_view’);
att_information_view要和Security_task.view.att_information_view里面的相同,代表要跳转的页面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值