切换视图超音速

时间:2015-07-21 18:18:57

标签: ios webview supersonic

我正在开发使用超音速的跨平台应用程序。但是,我相信我在理解超音速内部管理视图方面存在问题。

首先,我不想使用原生导航栏,因为它不支持标题内的图像,如公司徽标。这是我不想将视图推入视图堆栈的方式(因为它会自动添加< Back按钮)。

我的问题是:如何在appgyver的超音速中切换视图而不将其推入视图堆栈?类似于标签但没有标签界面。有可能吗?

也许我应该使用不同的移动Web应用程序框架?

1 个答案:

答案 0 :(得分:1)

您可以使用this method删除原生导航栏:

supersonic.ui.navigationBar.hide(options).then( function() {
    supersonic.logger.debug("Navigation bar hidden without animation.");
});

还有另一个隐藏导航栏的建议,因此它不会在屏幕上闪烁found here

  

导航栏没有隐藏   我注意到很多时候,条形图不会被隐藏,因为在视图加载完成之前已经进行了调用,导致错误,并且条形图没有隐藏。

     

快速修复:   您需要一种方法来告诉视图它已完成加载。我们怎么做? window.post()

     

在原始视图中,在任何控制器中,添加以下代码

$scope.broadcastMessage = function(msg){

    var message = {
        recipient: "hideView",
        message: "Hi Hide view!"
    };

    window.postMessage(message);
});
  

在第二个视图中,执行相同操作,但请使用以下代码

function messageReceived(event) {

    // check that the message is intended for us
    if (event.data.recipient === "showView") {
        steroids.view.navigationBar.hide(); 
    }
}
window.addEventListener("message", messageReceived);
  

这将确保在视图收到消息之后才进行调用(直到视图加载后才会进行调用)

这意味着将视图推送到堆栈将不会提供本机导航栏,您可以添加自己的导航栏并根据需要设置样式。这是现在使用Supersonic的一种非常常见的方法。

如果您使用制表符,则每个制表符都有自己的视图堆栈。

要回答您的问题,无法将视图推送到堆栈。解决这个问题非常简单。您也可以使用modals。同样,要根据需要设置导航栏的样式,您可能需要创建自己的导航栏并隐藏原生导航栏。

这个框架值得一试。我现在用它构建了许多应用程序。