0

クリックすると、追加の共有機能を備えたモーダル ウィンドウが開くボタンがあります。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');
    }

次に、fb、twitter、電子メール、およびキャンセル ボタンを介して共有するための 4 つのボタンを含む 2 番目のファイルを作成します。

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

2 番目のファイルでこのボタンが必要な唯一の理由は、ユーザーが 2 番目のファイルで「キャンセル ボタン」を押した場合、shareBtn の backgroundImage を元の状態に変更したいからです。すなわち

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

    });

私がはっきりしていることを願っています。

4

1 に答える 1

1

イベントでラウンド Ti.UI オブジェクトを渡すことはできません。IOS ではプリミティブ (文字列、数値など) のみを渡すことができますが、Android では機能しました。最後に、問題を解決するために別のカスタムイベントを作成しました

于 2013-10-30T16:40:50.833 に答える