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

首先,我不想使用本机导航栏,因为它不支持标题内的图像,如公司徽标。那是我不想将视图推入视图堆栈的方式(因为它会自动添加
我的问题是:如何在appgyver的超音速中切换视图而不将其推入视图堆栈?类似标签,但没有标签界面。可能吗?

也许我应该只使用其他移动Web应用程序框架?

最佳答案

您可以使用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。同样,要根据需要设置导航栏样式,您需要创建自己的导航栏并隐藏本机导航栏。

值得尝试使用此框架。我现在已经用它构建了许多应用程序。

10-05 21:46