2011-12-17 4 views
4

ネストされたRootElementsを使用して複数レベルのメニュー構造を作成するのは簡単ですが、に特定のUIViewControllerを追加するとどうなりますか?それぞれRootElementに自分自身のUIViewControllerを持たせたいのは、バックグラウンドイメージを簡単に制御し、画面から画面にNavigationBarを切り替えることができるため、UIViewControllerのtrivalです。MonoTouch.Dialogの各RootElementに専用のUIViewControllerがありますか?

答えて

9

私はあなたがこのために探していると思う:

あなたが UIViewController(例えば DialogViewControllerカスタマイズされたか、それを継承するタイプ)を作成してみましょう
public RootElement (string caption, Func<RootElement, UIViewController> createOnSelected) 

これにより、ほとんどの場合、ビューとそのコントローラーを制御しながら、を入れ子にすることができます。

UPDATE

はここでこれを使用することができます方法は次のとおりです。

まずのUIViewControllerを作成するあなたの方法を宣言します。メソッドのシグネチャはFunc<RootElement, UIViewController>と一致する必要があります。

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

次は、使用してルート要素を作成します。あなたは今、あなたの好みに合わせてDialogViewControllerをカスタマイズすることができるしている以外

var root_element = new RootElement ("caption"); 

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

は、上記のあなたと同じようになりますそれを返す前に。

+0

何createOnSelectedのためのコードは次のように見えますか?また、あなたはそこに「public」を持っています、あなたは「new」を意味しますか? –

+1

いいえ、上に示したのは、(新しいものを作成することによって)あなたのコードで使うべきコンストラクタ宣言(MonoTouch.Dialogから)です。私はこれを示す答えを更新します。 – poupou

8

同じこと、以下の方法...

var root_element = new RootElement("caption", (RootElement e) => { 
     return new DialogViewController (e); 
    }); 
関連する問題