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 に答える