我是SAPUI5开发的新手,我想知道如何浏览不同的应用程序定义。
就我而言,我正在开发一个使用sap.m.app的移动应用程序,在某些视图中,我想使用sap.m.splitApp.
首先,我有一个登录页面和一个带有一些选项的tile容器。根据用户的选择,我展示了一个带有主页和详细信息页面的splitApp。
主应用程序控制器:使用此方法,我可以导航到我的splitApp视图
toApp: function (pageId, context) {
var app = this.getView().app;
// load page on demand
var master = ("Login" === pageId);
if (app.getPage(pageId, master) === null) {
var page = sap.ui.view({
id : pageId,
viewName : "view." + pageId,
type : "JS",
viewData : { component : this }
});
page.getController().nav = this;
app.addPage(page, true);
console.log("app controller > loaded page: " + pageId);
}
// show the page
app.to(pageId);
// set data context on the page
if (context) {
var page = app.getPage(pageId);
page.setBindingContext(context);
}
},
Ticket.view.js:在这里,我将主页和详细信息添加到我的应用
createContent : function(oController) {
// to avoid scroll bars on desktop the root view must be set to block display
this.setDisplayBlock(true);
// create app
this.app = new sap.m.SplitApp();
// load the master page
var master = sap.ui.xmlview("MyTicketsList", "view.MyTicketsList");
master.getController().nav = this.getController();
this.app.addPage(master, true);
// load the empty page
var empty = sap.ui.xmlview("Empty", "view.Empty");
this.app.addPage(empty, false);
return this.app;
}
而且运行良好。我可以导航到我的splitApp。问题是,如果用户选择其他选项,我必须返回主页(带有tile容器)。我希望在我的Ticket.controller.js 中使用以下方法
back : function (pageId) {
this.getView().app.backToPage(pageId);
}
而且,在MyTicketsList控制器上,我使用处理了avButtonPress
this.nav.back("MainPage");
但这行不通!
如何在应用程序中导航?或者,也许,如何使用母版页和详细信息页更好地创建拆分器页面视图?
第页。S.:我正在学习这个教程
提前感谢!
在splitApp中,首先应该将视图实例化为
oSplitApp.addDetailPage(您的视图);
然后从splitapp使用导航,oSplitApp.toDetailPage(您的视图);
这比看起来更容易。
我也遇到了同样的问题,要预览SplitApp,您只需要像普通的XML视图一样调用视图,但插入TAG
onInit: function() {
this.bus = sap.ui.component(sap.ui.core.Component.getOwnerIdFor(this.getView())).getEventBus();
},
doNavBack: function(event) {
this.bus.publish("nav", "to", {id : "Page1"});
},