2

私が SplitView で抱えている問題は、ナビゲーション バーです... 行方不明です。MVVMCross の例のように、タブレット プレゼンターを使用します。たとえば、CustomerManagement の例に示されているように、ナビゲーション バー項目を追加しようとしても表示されません。

UINavigation コントローラーが見つからないことと関係があると思いますが、タブレット プレゼンターを使用して実装する方法がわかりません。

ビューは Dialog を使用して作成され、プレゼンターは MvxBaseTouchViewPresenter を使用しています。

スプリットビューとダイアログを使用しているときにナビゲーションバーを利用する方法を誰か教えてもらえますか?

前もって感謝します!

4

2 に答える 2

0

あなたの説明からあなたの UI を 100% 理解できるわけではありません。間違った考えを持っている場合は、いくつかの写真が役立つかもしれません。

ただし...基本的に、プレーンなMonoTouchで実現できるUIはすべて、MvvmCrossでも実現できるはずだと思います。

すでにかなり多くのことを解決しているように見えますが、要約すると次のようになります。

  • ナビが必要な場合
  • システムはコンテナに「ビュー」を構築するように要求します(これはUIViewControllerであり、UIViewではありません)
  • システムはロードされたビューをプレゼンターに渡します
  • プレゼンターは、必要に応じてこのビューを表示できます (ポップアップ、分割ビュー、子ナビゲーション、モーダルなど)。また、他の UI 変更 (アニメーション、タブ切り替えなど) も実行できます。
  • UIView 自体が (UIViewController ViewDidLoad で) 読み込まれると、MvxView 基本クラスは View が使用する ViewModel を読み込みます。

あなたの例では、UINavigationController が含まれるように分割ビューの 1 つを特殊化する必要があるように思えます。次に、Presenter に新しいビューをその UINavigationController に渡してプッシュさせます。

これは単なる C# コードであり、UI プロジェクト内にあるだけです。「通常の MonoTouch」と同じように自由に記述してください。

「高度な」プレゼンターの一例は会議のサンプルです。ショー アクションをタブ バーに委譲する方法をご覧ください ( https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20CirriousConference/Cirrious)。 Conference.UI.Touch/ConferencePresenter.cs

于 2012-11-30T09:04:20.400 に答える
0

私は自分の質問に答えることができました。私のアプローチが間違っている場合は、私を修正してください!

github の MVVMCross の例と同じセットアップを使用します。SplitViewController に小さな変更を加えました。

  1. _detailNav と _rootNav という 2 つの UINavigationController を作成しました。
  2. UINavigationController コンストラクターを使用すると、UIViewController を RootViewController に設定できます。ここで ViewController を設定します (例: new EmptyViewController())。
  3. SetPrimaryView と SetSecondaryView という 2 つのメソッドを変更して、UINavigationController を使用して ViewController を変更するようにします。

例、これを変更します: this.ViewControllers = new UIViewController[] { controller, ViewControllers[1] };

これに: _detailNav.PushViewController(controller, true);

現在、SplitView で新しい ViewControllers 配列を設定する代わりに、_detailNav (UINavigationController) を使用してビューを変更します。

于 2012-11-30T09:05:34.630 に答える