4

このように、ナビゲーションビュー(xtype:'mainPanel')からビューをプッシュしています。これはタブバーの要素です。2番目のビューでbackは、ナビゲーションバーにボタンが表示されますが、機能していません。何か案が?

itemtap: function(list, index, target, record) {


                                list.up('mainPanel').push({
                                    xtype: 'newview',
                                    title: 'New',
                                    data: record.data
                                });


}

Main.js

Ext.define('Proj.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
    'Ext.TitleBar','Proj.view.phone.Mainpanel','Proj.view.phone.Home',''
],
config: {
    tabBar: {
        docked: 'bottom',
        layout: {
            pack: 'center'
        }

    },

    items: [

        {
            xtype: 'homePanel'
        },
        {
            xtype: 'mainpanel'
        },

    ]
}

});

Mainpanel.js

Ext.define('Proj.view.phone.MainPanel', {
    extend: 'Ext.navigation.View',
    xtype: 'mainpanel',
    requires : [
        '],
    initialize:function(){

        this.getNavigationBar().add(stuff);


Ext.getCmp('categoryList').setData(jsonObject.info);



    },
    config: {
        title : 'Shop',
        iconCls: 'favorites',
        styleHtmlContent: true,
        scrollable: true,

            items: [

                        {
                            xtype: 'list',
                            fullscreen: true,
                            itemTpl: '{name}',
                            autoLoad: true,
                            id:'categoryList',
                            store: {
                                fields :['active', 'created','description']

                            },
                            listeners: {
                                itemtap: function(list, index, target, record) {

                                    list.up('mainpanel').push({
                                        xtype: 'newview',
                                        title: 'newview',
                                        data: record.data
                                    });

                                }
                            }
                        }
            ]
    },
4

2 に答える 2

5

次のコードで戻るボタンイベントをオーバーライドしてみてください::

extend:'Ext.navigation.View',
xtype:'myNavigation',
config:{
    ……
},
onBackButtonTap:function(){
    this.callParent(arguments); 
    alert('back button pressed');
}

それが機能するかどうかを確認します。もしそうなら、あなたはあなたがバックイベントを間違って扱っていることを知っているでしょう、そしてプッシュは機能していません。アラートがスローされない場合、リスナーは機能していません。コントローラメソッドを使用してプログラムでバックイベントを呼び出してみて、代わりにそれが機能するかどうかを確認してください

于 2013-03-26T19:15:48.060 に答える
1

私は以前にこの問題に直面したことがあります。すべてのビューで初期化関数を作成します。このコードを追加します。

this.callParent(arguments); 
于 2013-04-01T12:56:44.287 に答える