0

私のチタンベースのアプリケーションでは、私のナビゲーションフローは次のようになります

HomeVu -> Subvu1 -> Subvu2

Subvu1 ビューから Subvu2 に移動しようとすると、次のエラーが表示されます。

  Script Error 
  {
  backtrace = "#0 () at :0";
  line = 40;
  message = "'undefined' is not an object (evaluating 'ReportSubWindow.containingTab.open')";
  name = TypeError;
  sourceId = 300153536;
  sourceURL = "file:///Users/administrator/Library/Application%20Support/iPhone%20Simulator/7.1/Applications/9A6B5752-F198-48AC-9E23-2A0DC31A2BD2/test.app/SubVu/text.js";
  } 

ここにコード

ホームビュー

  button2.addEventListener('click', function() 
  {
    var FindAnExpertSubWindow = require('SubVu/email');
    self.containingTab.open(new FindAnExpertSubWindow('My Mail'));
  });

Subvu1

function FindAnExpertSubWindow(title) 
{
var findAnExpertSubWin = Ti.UI.createWindow({
    backgroundColor : 'white', });
var button1 = Ti.UI.createButton({
    backgroundImage: 'ui/images/Untitled.png',
    height:32,
    width:87,
    top:90,
    left:115,

});

button1.addEventListener('click', function() 
{
var FindAnExpertSubWindow = require('SubVu/email');
    findAnExpertSubWin.containingTab.open(new FindAnExpertSubWindow('My Mail'));
});
findAnExpertSubWin.add(button1);
return findAnExpertSubWin;
    };
 module.exports = FindAnExpertSubWindow; 

Subvu2

 function ReportSubWindow(title) 
 {
var reportSubWin = Ti.UI.createWindow({
backgroundColor : 'black',
    });
 return reportSubWin;
 };
 module.exports = ReportSubWindow; 

Subvu1 から Subvu2 に移動するには?

4

1 に答える 1

1

Subvu1 ウィンドウを作成するときは、HomeVu ウィンドウで行うのと同じ方法で、containingTab プロパティを設定する必要があります。コード例にはコードのその部分がありませんが、おそらく次のようになります。

ホームビュー

button2.addEventListener('click', function() {
    var FindAnExpertSubWindow = require('SubVu/email');
    self.containingTab.open(new FindAnExpertSubWindow('My Mail', self.containingTab));
});

Subvu1

function FindAnExpertSubWindow(title, containingTab) {
    var findAnExpertSubWin = Ti.UI.createWindow({
        backgroundColor : 'white',
        containingTab: containingTab,
    });
    /* ... */
});

もう 1 つの解決方法は、すべての Window 間で Tab オブジェクトへの参照の受け渡しを停止し、新しいウィンドウを開くために使用するグローバル オブジェクトを 1 つだけ作成することです。

役に立たない場合は、さらにサンプル コードを投稿してください。

于 2014-03-20T20:44:26.223 に答える