0

これは非常に簡単なはずですが、何かが欠けています。カスタム要素があります:

public class PostSummaryElement:StyledMultilineElement,IElementSizing

要素のアクセサリがクリックされたときに、ビューをスタックにプッシュしたいと考えています。つまり、次のようなものです。

this.AccessoryTapped += () => {
    Console.WriteLine ("Tapped");
    if (MyParent != null) {
    MyParent.PresentViewController(new MyDemoController("Details"),false,null);
            }
};

monotouch.dialog で MyDemoController の GUI を作成したところ。

私は、GUI を Views と Controlls に分割しようとしています。そこでは、コントロールがビューをスタックにプッシュし、何かが起こるのを待ってから、ユーザーはコントロールを含む前のビューに戻ります。

何か考えはありますか?ありがとう。

4

1 に答える 1

0

プロジェクトの別の場所でそのコンポーネントを使用する日が非常に近いため、AccessoryTapped メソッドで動作をハードコーディングしないことをお勧めします。おそらく近い将来、別の動作が必要になるか、たとえば MyDemoController がまったくない別のプロジェクトになるでしょう。
したがって、次のプロパティを作成することをお勧めします。

public Action accessoryTapped;

要素とそのビューで、その後、AccessoryTapped を変更します。

this.AccessoryTapped += () => {
    Console.WriteLine ("Tapped");
    if (accessoryTapped != null) {
        accessoryTapped();
    }
};

したがって、次の方法で PostSummaryElement オブジェクトを作成する必要があります。

var myElement = new PostSummaryElement() {
  accessoryTapped = someFunction,
}
...
void someFunction()
{
    NavigationController.PushViewController (new MyDemoController("Details"), true);
}
于 2013-01-22T07:39:25.173 に答える