0

I want to to send data from one window to another.

Example: I have a text field and a button on first window. When click on window I need to send text field value to the second window?

I found a tutorial, but it's not in MVC.

Machado
  • 8,965
  • 6
  • 43
  • 46
user2648752
  • 2,123
  • 5
  • 21
  • 29

2 Answers2

3

I have created a new alloy controller (left click in your project and then new) and here is how i am passing parameters to the next view.

The new controller is called CallBack and the first controller is called index.

In CallBack.xml i have:

<Alloy>
    <View class="container">
    </View>
</Alloy>

In CallBack.tss i have:

".container": {
    backgroundColor: "black"
}

In CallBack.js i have:

var args = arguments[0] || {};
//here you can do whatever you want to your parameter, i just show the value.
alert(args.textField);

And finally in index.js this is how i am passing the parameters of my textField:

//with a button i can open a new view in my current window
$.btnNext.addEventListener('click',function(e){
    //tfInsert is the id of my textfield in index.xml file and with .value i can access to whatever it contains
    //the "?" operator is like an if
    var textField = $.tfInsert.value != "" ? textField = $.tfInsert.value : textField = "Hello";
    var nextView = Alloy.createController('/CallBack', {
        textField: textField
    }).getView();
    //this is how i add a new view to my current window
    $.window.add(nextView);
});

Hope this helps.

Mario Galván
  • 3,964
  • 6
  • 29
  • 39
0

In controller.js (from where we are passing Data)

function createController(win)
 {
    //title is the data to pass
    var platform = Ti.Platform.osname;
    var calledWindow = require('/ui/' + platform + '/addProductWindow').createCalledWindow(title);
        calledWindow.open();

};

In calledWindowController.js

function createController(win){
    //Do whatever control you want
};

In calledWindow.js

exports.createCalledWindow = function(title) 
{
        //Do whatever UI you want

    Ti.include('/Controllers/calledWindowController.js');
    var controller = createController(win); 

    return win;
};
Krishna Kumar
  • 1,652
  • 9
  • 17
  • I could not understand, can you please explain your answer file structure or add it to the answer? – Machado Apr 26 '17 at 17:35