2012-02-14 80 views
0

我想建立一個多屏幕的iphone應用程序,但我似乎無法使其工作。鈦工作室多個屏幕

這裏是我做過什麼:

app.js

var rotate = Titanium.UI.createButton({ 
    top:205, 
    left:100, 
    height:30, 
    width:120, 
    backgroundImage:"anim_ctrl_panel_1.png" 
}); 

rotate.addEventListener('click', function() 
{ 
     var window = Ti.UI.createWindow({ 
      url:"Window1.js", 
      title:"Window1" 
    }); 

    // Titanium.UI.currentTab.open(window,{animated:true}); 
    window.open(); 
} 
); 

Window1.js

var win1 = Titanium.UI.createWindow({ 
    title:'Tab 1', 
    backgroundImage:"photo1.png", 
    backgroundColor:'#fff' 
}); 

但是當我點擊我的按鈕,沒有任何反應。有人可以證明什麼是正確的做法。

這是我的控制檯顯示:

[的UITabBarController setSelectedViewController:]僅在標籤欄控制器的視圖控制器的列表視圖控制器可以被選擇。

那麼有人能告訴我什麼是正確的做法嗎?

重要:我不想要一個鏈接,從這裏走,因爲我一直在這裏:

Titanium: navigation from one screen to other 和在其他地方,但我不能做這項工作。謝謝

+0

清理積聚的應用程序文件夾添加,然後再試一次 – 2012-02-14 12:33:17

+0

任何人,這是一樣的! – adrian 2012-02-14 12:41:00

+0

其實我得到了同樣的問題,但刪除後,爲我工作。 – 2012-02-14 12:44:49

回答

2

你不應該只是打開一個窗口。有兩種方法可以做到這一點,無論是創建一個Modal窗口,還是使用導航組。

有一件事是肯定的,你不應該在Window1.js重新創建窗口。這種實施方式實際上是錯誤的,對你的記憶很不利。

更好的方法是用一個函數來做。 (你也可以做更多的JavaScript OO)將此代碼添加到Window1.js:

function createWindow1(){ 
    var win = Titanium.UI.createWindow({ 
     title:'Tab 1', 
     backgroundImage:"photo1.png", 
     backgroundColor:'#fff', 
     modal: true 
    }); 
    return win; 
} 

之後,你可以這樣調用在app.js

var window = createWindow1(); 

但是不要忘了以包括文件Window1.js第一(上的文件的頂部,或者被調用的函數的至少前)

Ti.include('Window1.js'); 

現在到open一部分。正如你所看到的,我添加了參數modal到窗口元素。這將使窗口打開在其他窗口頂部(這隻能做一次)

更好的方法是使用NavigationGroup。請注意,這不適用於android,但僅適用於iOS。檢查文檔示例。 (之前的鏈接)。

代碼的結構是window> navigationgroup>窗口。頂層窗口不需要做任何事情,只需隱藏導航欄即可。使用導航組,你可以做open(window),這樣它就會打開一個iOS風格的窗口(左上角有一個箭頭)

0

嘗試這種推薦的方式.... 在window1.js

var win = Ti.UI.currentWindow(); win.title = 'tab 1'; win.backgroungImage="photo1.png"; win.backgroundColor= '#fff';