如何关闭另一个控制器中

时间:2017-03-21 15:43:53

标签: model-view-controller appcelerator android-alertdialog appcelerator-titanium

我有一个props.xml合金视图和一个prequal.xml合金视图(包含一个包含表单的视图),每个视图都有各自的控制器。表格数据加载到props.xml后会显示等号表格。

我需要将prequal表格作为模态窗口,因为Android和iOS对待它们的方式不同,我必须在Android的AlertDialog和iOS的实际模态窗口中放置prequal视图。因此,在$.UI.create('AlertDialog', {properties});之后,通过其androidView属性将prequal表单添加到Android AlertDialog,并通过窗口的add(view)函数添加到iOS窗口。

然而,问题在于AlertDialog和Window是在props.js中定义的,我需要能够在提交表单后从prequal.js关闭这些窗口。我尝试使用与这些容器模态视图关联的id来关闭它们,但它只关闭包含表单本身的实际视图,而不是包含它的父视图。

当父视图在与定义子视图的控制器中定义的父视图中时,如何关闭其子视图的父视图?

1 个答案:

答案 0 :(得分:1)

winA内,您通过回调函数打开一个新的控制器传递:

function closeA(){
  $.winA.close();
}

Alloy.createController("winB", {
  closeA: closeA
}

winB中,您现在可以致电$.args.closeA()来触发控制器closeA()中的winA功能