共享两个文件之间的按钮变量

时间:2013-10-30 15:17:09

标签: javascript iphone variables titanium global

我有一个按钮,当点击它时会打开一个带有其他共享功能的模态窗口。在Android上一切正常,但我对iOS有一个小问题。我能够共享一个只是一个数字的变量,而不是一个按钮变量。主app.js下面的代码:

var shareBtn2;
var fullScore;
shareBtn2.addEventListener('singletap', function (e){

    shareBtn2.setBackgroundImage('share_pressed.png');

    var shareModal = require('shareModal');
    var shareModalView = new shareModal();
    Ti.App.myGlobalVar=shareModalView;
    win2.add(shareModalView);

    if (DJBool){
        Ti.App.fireEvent('shareModalEvent', {
              myBtn: shareBtn2,
              myPts: Math.round(fullScore)
        });
        alert('Was a DJBool');
    }

然后在我的第二个文件中包含4个按钮,分享通过,fb,推特,电子邮件和取消按钮。

Ti.App.addEventListener('shareModalEvent', function(event) {
    globalPts=event.myPts;
    globalBtn=event.myBtn;
    alert('received share modal event');
});

console.log(typeof globalPts);//outputs number
console.log(typeof globalBtn);//outputs undefined

我在第二个文件中需要此按钮的唯一原因是,如果用户按下第二个文件中的“取消按钮”,我想将shareBtn的backgroundImage更改为其原始状态。即。

cancelBtn.addEventListener("click", function (e){
        cancelBtn.setImage('cancelShare_pink.png');
        win2.remove(Ti.App.myGlobalVar);
        globalBtn.setBackgroundImage('share.png');

    });

希望我一直很清楚。

1 个答案:

答案 0 :(得分:1)

事实证明,你无法在事件中传递Ti.UI对象,只能在IOS中传递原语(如字符串,数字),但它可以在Android上运行。最后,我写了另一个自定义事件来解决问题