2

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

  1. 通过 DataRequest 发送数据(作品)
  2. 添加一个 onFinish 回调(有效)
  3. 尝试在 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();
      }
    }
    

有任何想法吗?

4

1 回答 1

2

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

因此,允许使用该方法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 + "'.");
    }
  }
}
于 2013-06-11T13:04:29.123 回答