Sencha touch 如何从导航视图的xtype和pass to push功能创建视图

Sencha touch 如何从导航视图的xtype和pass to push功能创建视图,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我在Sencha Touch中看到了新NavigationView组件的示例。如何使用xtype切换到另一个视图。API文档似乎省略了一个显示最常见用法的有用示例(即使用xtype创建新视图)。还是我遗漏了什么 在他们的例子中: 他们正在使用参考“视图”来推送新视图。 但我的问题是: 1) 如果最初导航到的视图是xtype加载的结果,如下所示: Ext.Viewport.add({xtype:'testnavview'}); 那么,如果使用来自原始控制器的xtype隐式加载了它,那么如何获取对

我在Sencha Touch中看到了新NavigationView组件的示例。如何使用xtype切换到另一个视图。API文档似乎省略了一个显示最常见用法的有用示例(即使用xtype创建新视图)。还是我遗漏了什么

在他们的例子中:

他们正在使用参考“视图”来推送新视图。 但我的问题是:

1) 如果最初导航到的视图是xtype加载的结果,如下所示:

Ext.Viewport.add({xtype:'testnavview'});
那么,如果使用来自原始控制器的xtype隐式加载了它,那么如何获取对它的引用以将视图推送到它上呢

2) 然后,我如何使用xtype将视图推送到导航视图上(请参见下文?)

i、 e.我可以做这样的事情吗:

Ext.define('MyApp.view.TestNav', {
    extend: 'Ext.NavigationView',
    alias: 'widget.testnavview',
    config: {
        items: [
            {
                xtype: 'toolbar',
                docked: 'top',
                title: 'View 1',
                items: [
                {
                    xtype: "button",
                    text: "View1",
                    handler: function () {
                        console.log("handler view1");

                        this.push({ xtype: "View1" });

                    }
                },
                {
                    xtype: "button",
                    text: "View2"
                },
                 {
                     xtype: "button",
                     text: "View3"
                 },
                 {
                     xtype: "button",
                     text: "View4"
                 }

                ]
            }
        ]
    }

});

您可以通过在控制器中添加对导航视图的引用来检索导航视图:

refs: {
  navigationView: 'navigationview'
}
然后,您可以在控制器中的任何位置使用它,如下所示:

this.getNavigationView().push({xtype: 'myPushedView'});

我不确定我是否理解这一点,示例中应该推动视图的处理程序在视图中,而不是控制器中…这是相同的。处理程序是一个函数,当按钮触发点击事件时调用该函数。因此,设置处理程序或添加tap事件侦听器基本上是相同的。现在,如果您正在构建一个使用MVC架构(我推荐)的应用程序,那么您应该将视图与逻辑、代码分开。因此,点击按钮时执行的代码应该写入控制器中。现在,在Sencha文档中,这只是一个小例子,这就是为什么他们没有费心设置控制器。好的,这可以工作了,谢谢:)知道为什么吗,被推的视图会出现在下面,而原来的导航视图选项卡栏仍然停靠在顶部?我想我知道这是为什么。导航视图本身保存着这些卡,因此如果我添加视图,它们就是现有工具栏下面的子视图。