1

iPadアプリケーションでTinyMessengerを使用しようとしています。iPadアプリケーションにはUIViewControllerがほとんどありません。TinyMessengerを介したこれらのコントローラー間の通信を確認したいと思います。私は手順を次のように理解しています

ステップ1-メッセージハブを作成します[?]

var messageHub = new TinyMessengerHub();

ステップ2-メッセージを公開する[UIViewController1で]

messageHub.Publish(new MyMessage());

ステップ3-[UIViewController2で]メッセージをサブスクライブする

messageHub.Subscribe<MyMessage>((m) => { MessageBox.Show("Message Received!"); });

そして、MyMessageは以下のように定義されています

public class MyMessage : ITinyMessage
{
    /// <summary>
    /// The sender of the message, or null if not supported by the message  implementation.
    /// </summary>
    public object Sender { get; private set; }
}

これがこのセットアップを機能させるための正しいステップであるかどうかアドバイスしてください。そして、私はメッセージハブをどこに作成すべきかわかりません。メッセージハブは、任意のUIViewControllerからアクセスできるように、グローバルである必要があると思います。AppDelegateでmessagehubを作成できますか?AppDelegateでメッセージハブを作成する場合、UIViewController1からメッセージハブにアクセスするにはどうすればよいですか?

助けに感謝します。

4

1 に答える 1

4

このメッセンジャーハブをIoCコンテナと組み合わせて使用​​する必要があります。

アプリ内に必要なハブのインスタンスは1つだけです。これを行うには、コンテナーを使用する方法があります。

TinyIoCのコンテナのセットアップの例を参照してください(これはあなたが使用していると思います)。あなたは基本的に呼ぶでしょう:

var hub = TinyIoCContainer.Current.Resolve<ITinyMessengerHub>();
//for subscribers
hub.Subscribe<YourMessage>(OnYourMessage);
//for publishers
hub.Publish(new YourMessage(this, "BOOYAH!"));

PS-本当にTinyIoCを使用している場合は#if TINYMESSENGER、アプリケーションのハブを自動的に登録するためにオンにできるプリプロセッサディレクティブがあります。

于 2012-05-31T02:33:57.983 に答える