2012-04-19 44 views
0

我有一個對話框,它是全屏模態彈出窗口。MonoTouch.Dialog:當不在導航控制器中時彈回父級

它有一組放射性元素。當選擇一個新的屏幕,在這種情況下,顯示狀態。

當選擇狀態時,如何在沒有UINavigation控制器時讓屏幕「彈出」回主對話框?

var rWhoToSee = new RootElement ("What State are you in??", gWhoToSee) { 
    new Section(){ 
      new RadioElement ("ACT"), 
      new RadioElement ("NT"), 
      new RadioElement ("NSW"), 
      new RadioElement ("TAS") 
      } 
    }; 

回答

2

模態任何子對話框有一個PresentingViewController屬性。這可以用來消除或用於與導致對話框出現的控件進行通信。

var vc = dlg.PresentingViewController as MyViewController; 
    dlg.DismissViewController (true,() => {}); 
0

你要問父控制器駁回使用DismissModalViewController()

+0

但是,如何從RootElement獲得父視圖控制器? – 2012-04-19 19:04:20

+0

好點 - 一個元素可以訪問它自己的DVC嗎?如果是這樣,請將您父母的參考傳遞給您的模態DVC。如果不是,你可能需要做一些MT.D的定製。 – Jason 2012-04-19 19:07:45

0

呼叫您所選擇的從你的導航控制器「啪」的方法如下圖所示:

NagivationController.PopViewControllerAnimated(true); 

你也可以只組中的所有元素:

new RootElement ("Clients", new RadioGroup("clientGroup", 0)) { 
    new Section() { 
     new RadioElement ("Happy client", "clientGroup"), 
     new RadioElement ("Angry client", "clientGroup") 
    } 
}; 

使用分組目前允許它自動回彈到前一個屏幕,根元素將在標題中顯示「客戶端」,然後是組中的第一個選項。所以,在這種情況下,它會顯示「愉快的客戶」。

相關問題