デフォルトを使用する代わりに、戻るボタンとその参照を定義することで、より適切に制御することもできます。
Ext.define('Mov.view.BackButton', {
extend: 'Ext.Button',
alias: 'widget.backbutton',
config: {
hidden: true,
id: 'back',
ui: 'back',
text: 'Back',
backStack: {
}
},
addToBackStack: function(dispatchOptions) {
var found = false;
this.backStack.forEach(function(el) {
found = found || (Ext.encode(el) == Ext.encode(dispatchOptions));
});
if (!found) {
this.backStack.push(dispatchOptions);
}
this.show();
},
clearBackStack: function() {
this.backStack = [];
this.hide();
},
handler: function(button, event) {
var dispatchOptions = this.backStack.pop();
Ext.dispatch(dispatchOptions);
if(this.backStack.length === 0) {
this.hide();
}
}
});
次に、アプリのナビゲーション バーで、このウィジェットを適用します。(初期ビューの onInitialize はうまく機能します)。
nav = this.getNavigationBar(),
nav.setBackButton(Ext.widget('backbutton'));
@jurodr には、ルーティング、参照、および制御の優れた例があり、このカスタム コンポーネントでうまく機能します。