2011-11-29 51 views
0

問題:Sencha Touch - 使用setActiveItem()切換項目時,如何訪問Back按鈕?

我切換使用setActiveItem()面板根據上this link

App.views.viewport.getActiveItem().setActiveItem(App.views.Panel, { type: 'slide', direction: 'left' }); 

一切問答工作正常,但我怎麼能訪問我的後退按鈕?

我懷疑只有1個後退按鈕,我不得不改變他的屬性(文本,處理程序)。 我該怎麼做?

謝謝你,謝洛米。 P.S-思考這個問題時,我必須修改所有的欄屬性 - 它的標題也是如此。

回答

1

我會盡量回答這個問題引用previous question about panels.

加上一個後退按鈕到面板上的頂欄。

initComponent: function() { 
     Ext.apply(this, { 
     dockedItems: [{ 
      xtype: "toolbar", 
      title: "Ingressos", 
      items:[{ 
       xtype: 'button', 
       text: 'Back', 
       handler: function() { 

       } 
      }] 
     }], 
     items: [Mobz.views.IngressosList] 
    }); 
    Mobz.views.Ingressos.superclass.initComponent.apply(this, arguments); 
} 

當用戶進入到下一個頁面之後,訪問後退按鈕,並改變它的處理程序(我不喜歡改變處理程序中,我更喜歡建立一個堆棧機制去bacward,但它是你的選擇:) )。

Mobz.views.viewport.getActiveItem() //panel 

Mobz.views.viewport.getActiveItem().dockedItems.items[0] // toolbar 

您正在尋找回按鈕;

Mobz.views.viewport.getActiveItem().dockedItems.items[0].items.items[0] // back button 

Mobz.views.viewport.getActiveItem().dockedItems.items[0].title // toolbars title 
+0

謝謝@ykartal,像往常一樣!我會挖掘堆棧順序。我在發表問題之後才發現它。謝謝。 – neoswf

+0

通過說棧機制,你的意思是prev()方法? – neoswf

+1

我認爲是的。如果您保存數組中的前面板並單擊後退按鈕,則將數組的最後一個數組從數組中移除,並在前進時打開新窗口並將其添加到數組中。 –

0
{ 
    xtype: 'button', 
    text: 'Back', 
    handler: function() { 
     App.views.viewport.setActiveItem([The panel you want to go], {type: 'slide', direction: 'right'}); 
    } 
} 

在「App.views.viewport」面板中添加一個按鈕。

相關問題