我尝试在我的移动应用程序中实现拆分应用程序功能。但是在导航到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
]
});
}
答案 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();
希望这可以帮到你。