Javascript 在SAPUI5中访问另一个控制器中的一个控制器

Javascript 在SAPUI5中访问另一个控制器中的一个控制器,javascript,sapui5,Javascript,Sapui5,我有一个SAPUI5母版详细信息页应用程序。所以在母版页控制器中,我需要访问在详细视图中定义的元素。我怎么做 jQuery.sap.require("util.Formatter"); jQuery.sap.require("util.Networkaccess"); sap.ui.controller("view.Sales.SalesOrder.SoMaster", { myFunc: function() { var iconTabBar = this.byId(

我有一个SAPUI5母版详细信息页应用程序。所以在母版页控制器中,我需要访问在详细视图中定义的元素。我怎么做

jQuery.sap.require("util.Formatter");
jQuery.sap.require("util.Networkaccess");

sap.ui.controller("view.Sales.SalesOrder.SoMaster", {
    myFunc: function() {
        var iconTabBar = this.byId('itabBar'); 
        iconTabBar.setSelectedItem(iconTabBar.getItems()[1]);
    }
})

上面的代码会出错,因为主视图中没有
itabBar
元素,它是在详细视图文件中定义的。

我不确定我是否确切知道您要做什么,控件的唯一id前缀是视图,您可以尝试

var iconTabBar = sap.ui.getCore().byId("vwDetails--itabBar")

我发现在主视图中添加细节——前缀很尴尬,因为在视图本身中,byId会自动解析前缀。在我看来,一个id在整个应用程序中只应该出现一次。直接访问控制器是耦合的,您应该使用事件、助手,或者如果您使用的是组件或appcontroller,您可以在那里注册控制器并通过这些单例访问它们,然后使用oController.getView().byId()