后退按钮 - 在视口中导航

时间:2012-08-14 12:15:43

标签: sencha-touch-2

我正在向我的应用程序视口添加内容,如下所示:

Ext.Viewport.animateActiveItem(item, {transition})

我正在寻找一种方法来“回到”最后一个视图。这可能,或者视口是否会破坏最后一个视图?

3 个答案:

答案 0 :(得分:2)

为什么不使用内置的历史记录支持?您可以像这样在历史记录对象中添加一个条目:

this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
    url: 'dashboard'
}));

调用该函数后,它将更改应用程序的URL哈希值。您可以使用控制器中的路由来获取事件...将其添加到配置中,如下所示:

config: {
    routes: {
       'dashboard': 'showDashboard'
    },
    control: {
       //controls...
    }
},

Sencha Touch将识别URL更改并查看您的路线以调用如下函数:

showDashboard: function() {
    Ext.Viewport.animateActiveItem(item, {transition});
},

使用此方法,本机后退按钮将带您返回上一个视图,您还可以调用要转到的视图等...在此处查看历史记录对象的文档:http://docs.sencha.com/touch/2-0/#!/api/Ext.app.History < / p>

答案 1 :(得分:1)

为什么不在第一个面板上使用Ext.Viewport.animateActiveItem()

我在这里做了:http://www.senchafiddle.com/#xTZZg

希望这有帮助

答案 2 :(得分:0)

Ext.app.Action是一个私有Sencha类,因此无法保证在将来的版本中存在。更好的方法是替换......

this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
    url: 'dashboard'
}));

有了......

this.getApplication().redirectTo('dashboard');

如果它实现了toUrl()方法,你也可以传递一个Model对象......

this.getApplication().redirectTo(myModelObj);

如果需要,您现在可以使用以下内容返回:

history.back();

请参阅触摸历史记录指南: