1

我试图在我的移动应用程序中实现拆分应用程序功能。但是在导航到 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  
            ]
        });
    }
4

1 回答 1

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();

希望这对您有所帮助。

于 2013-11-22T08:40:29.027 回答