在ui5中拆分应用后退按钮不起作用

时间:2013-09-04 04:49:57

标签: sap sapui5

我尝试在我的移动应用程序中实现拆分应用程序功能。但是在导航到Detail2页面后,会出现一个“后退”导航按钮,按下后该按钮不起作用。 我已将代码放在下面:(如果您需要更多信息,请退回) view.js文件(内容):

sap.ui.jsview("split_app.first_view", {
    getControllerName : function() {
        return "split_app.first_view";
    },


    createContent : function(oController) {


        var olist1 = new sap.m.StandardListItem({
            type: sap.m.ListType.Active,
            title: "to detail 1",
            tap: function(){
                    osplit.toDetail("detail1");
                }
        });
        var olist2 = new sap.m.StandardListItem({
            type: sap.m.ListType.Active,
            title: "to detail 2",
            tap: function(){
                    osplit.toDetail("detail2");
                }
        });

        var otext = new sap.m.Label({
            text: "first label",
        });

        var osplit = new sap.m.SplitApp("split");

        var odetail1 = new sap.m.Page("detail1", {
            title: "first details",
            content: [
                        otext
                      ]
        });
        var odetail2 = new sap.m.Page("detail2",{
            title: "second Details",
            showNavButton: true,
            navButtonPress: function(){
                osplit.toMaster("masterPage");
                              app.back();
            },

            content: [
                      new sap.m.Label({
                          text: "second label"
                      })
                      ]
        });

        var omaster1 = new sap.m.Page("masterPage", {
            title: "master page",
            content:[
                      new sap.m.List({

                          items : [ olist1, olist2 ]
                      }) ]
        });

        osplit.addMasterPage(omaster1);
        osplit.addDetailPage(odetail1).addDetailPage(odetail2);
        osplit.setMode("ShowHideMode");

        return new sap.m.Page({
            title: "Title",
            content: [
                    osplit  
            ]
        });
    }

1 个答案:

答案 0 :(得分:2)

假设您想在详细区域(右侧)中向后退一步,则可以在单击后退按钮(navButtonPress)时调用SplitApp对象的backDetail()函数:

osplit.backDetail();

同样的功能适用于主区域(左侧)的后退导航:

osplit.backMaster();

如果您想要在应用程序对象中导航回来,请确保您有来自的上一页并且App对象已知所有页面(可能在您的index.html文件中): 我刚刚测试了您的代码,我使用上述功能在SplitApp中导航,并使用以下声明在您的应用程序中导航(在索引中或托管App对象的任何位置):

var app = new sap.m.App();

var init = sap.ui.view({
    id : "idinit",
    viewName : "stackovertest.init",
    type : sap.ui.core.mvc.ViewType.JS
})

var page = sap.ui.view({
    id : "idsplit_app1",
    viewName : "stackovertest.split_app",
    type : sap.ui.core.mvc.ViewType.JS
});
app.addPage(init);
app.addPage(page);

从初始页面开始后,您可以使用

app.back();

希望这可以帮到你。