コントローラーの一部のコードに問題があります。[戻る] ボタンをクリックすると、別のビューに切り替わりますが、ビューに戻ると、クリック ハンドラーが機能しなくなります。
以下のコードを参照してください....
Ext.define('MyApp.controller.MyDetails', {
extend: 'Ext.app.Controller',
requires: [
'TolMobile.view.MyDetails',
'Ext.field.Select',
'Ext.field.DatePicker'
],
config: {
refs: {
},
control: {
"#btnMyDetailsBack": {
tap: 'onBackButton'
}
}
},
onBackButton: function () {
MyApp.app.switchMainView('MyApp.view.Home', {});
}
});
アプリ クラス コード:
switchMainView: function (newView, config) {
if (this.currentView != false) {
Ext.Viewport.remove(this.currentView);
}
this.currentView = Ext.create(newView, config);
// animateActiveItem - TODO animation not working (but shows ok)
Ext.Viewport.animateActiveItem(this.currentView, { type: 'slide', direction: 'right' })
}
switchMainView() 呼び出しの代わりに、次のように動作するようになりました。このコードは、ホーム ビュー コントローラー内のボタン クリックで呼び出され、アニメーションが機能し、前後に移動します。私は本当に理由を知りたいのですが...
var detailsView = Ext.create('MyApp.view.MyDetails');
detailsView.setRecord(userRecord);
Ext.Viewport.animateActiveItem(detailsView, { type: 'slide', direction: 'left' })