2011-12-17 44 views
4

使用嵌套RootElementsMonoTouch.Dialog中創建多級菜單結構很容易,但是您將如何去管理每個根而不是特定的UIViewController?我希望每個RootElement擁有它自己的UIViewController的原因是因爲我希望能夠輕鬆控制諸如背景圖像之類的內容並將導航欄從屏幕切換到屏幕,並且這樣做是在UIViewController之內進行的。對於MonoTouch.Dialog中的每個RootElement都有一個專用的UIViewController?

回答

9

我認爲你正在尋找這樣的:

public RootElement (string caption, Func<RootElement, UIViewController> createOnSelected) 

這讓您創建UIViewController(例如,DialogViewController你定製的或從它繼承一個類)。

這將讓你繼續嵌套你的Element同時給予對視圖和它的控制器的大部分控制權。

UPDATE

下面是如何這可以用於:

首先聲明你的方法將創建的UIViewController。方法簽名必須匹配Func<RootElement, UIViewController>,例如,

static UIViewController CreateFromRoot (RootElement element) 
    { 
     return new DialogViewController (element); 
    } 

下一頁使用創建的根元素:

var root_element = new RootElement ("caption", CreateFromRoot); 

上述會給你一樣:

var root_element = new RootElement ("caption"); 

,除非你現在能夠在DialogViewController定製你的喜好在返回之前。

+0

什麼是對createOnSelected的代碼是什麼樣子?另外,你在那裏「公開」,你的意思是「新」嗎? –

+1

不,以上是您應該在您的代碼中使用的構造函數聲明(來自MonoTouch.Dialog)(通過執行新的操作)。我會更新答案以顯示此內容。 – poupou

8

同樣的事情,少方法...

var root_element = new RootElement("caption", (RootElement e) => { 
     return new DialogViewController (e); 
    }); 
相關問題