Javascript AppConKit3:无法在onFinish回调中关闭当前视图

Javascript AppConKit3:无法在onFinish回调中关闭当前视图,javascript,appconkit,Javascript,Appconkit,我想实现以下功能:向服务器发送一些数据,成功执行后,关闭当前视图。 到目前为止我所做的: 通过数据请求发送数据(works) 添加onFinish回调(工作) 尝试在onFinish中缩小当前Viewcontroller(失败) 这是我的密码 function sendTopic() { var vServerController = mobileController.serverController(); var vJSONRequest = vServerController.creat

我想实现以下功能:向服务器发送一些数据,成功执行后,关闭当前视图。 到目前为止我所做的:

  • 通过数据请求发送数据(works)
  • 添加onFinish回调(工作)
  • 尝试在onFinish中缩小当前Viewcontroller(失败) 这是我的密码

    function sendTopic() {
     var vServerController = mobileController.serverController();
     var vJSONRequest = vServerController.createDataRequest();
     vJSONRequest.setQueryMethod("createTopic");
     vJSONRequest.setOnFinish(finish);
     vServerController.addToQueue(vJSONRequest);
    }
    
    function finish(vResponse) {
      if (vResponse.body().search("200")) {
        //we got a 200 back, everything worked!
        logger.showMessage("All okay!");
        mobileController.activeController().dismissModal();
      }
    }
    

  • 有什么想法吗?

    没有为回调方法定义
    activeController
    ,因为用户界面可能在请求执行期间发生变化

    因此,
    solutionController
    允许使用
    findFirstViewController
    方法查找要解除的控制器

    在你的回调方法中试试这个

    function finish(vResponse) {
      if (vResponse.body().search("200")) {
        //we got a 200 back, everything worked!
        logger.showMessage("All okay!");
        var vControllerToDismiss = mobileController.solutionController().findFirstViewController(Screens.MyScreenToDismiss);
        if (vControllerToDismiss) {
            vControllerToDismiss.dismissModal();
        } else {
            logger.showMessage("Cant find controller named '" + Screens.MyScreenToDismiss + "'.");
        }
      }
    }