1

私の view.designer.cs では、アウトレットは xcode によって生成されます。

デバッグを開始すると、バインドを追加するときにプロパティに null 参照例外が発生します。コードでは、this.SampleText は null です。

public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            this.AddBindings(
                new Dictionary<object, string>()
                {
                    { this.SampleText, "{'Text':{'Path':'VMText'}}"}
                });     
        }

アプリケーションの出力に次のエラーがあることに気付きました:「アプリケーション ウィンドウには、アプリケーションの起動の最後にルート ビュー コントローラーが必要です」

私は何を取りこぼしたか ?

4

2 に答える 2

0

iOS のセットアップでより一般的な問題が発生している可能性があります。xcode と MonoTouch 間の XIB ファイルの同期に問題がある可能性があります。

MvvmCross バインディングを追加する前に、MonoTouch レイヤーを確認してください。MonoTouch レイヤーで this.SampleText が null の場合は、MvvmCross バインディング コードを追加する前にそれを解決する必要があります。

MonoTouch ソフト デバッガーは、これをデバッグするのに役立つ優れたツールであり、シミュレーターを使用したデバッグ サイクルは非常に高速であるため、多くの場合、これらの問題の解決に役立ちます。


この質問に対する部分的な回答から、ダイアログ ベースの UI で XIB を使用しようとしていたように聞こえますが、おそらくうまくいかないでしょう。MonoTouch.Dialog は常に単一のテーブルに基づいていると思います。 XIB (少なくとも、それは私の経験です!)


「アプリケーションウィンドウには、アプリケーションの起動の最後にルートビューコントローラーが必要です」に関しては、おそらく AppDelegate.cs の一般的な問題のように聞こえます。または、プレゼンターの問題である可能性があります。どのプレゼンターを使用していますか?

そのエラー メッセージ自体は、StackOverflow で多くのヒットがあります。たとえば、アプリケーションは、アプリケーションの起動の最後にルート ビュー コントローラーを持つことが期待されます。


iOS と MVVMCross については、すべてが明確ではないことを認めなければなりません

C# のバックグラウンドを持つコーダーにとって、これは珍しいことではないと思います。Windows 上の VS から Mac 上の MonoDevelop へのジャンプ (少しの xcode を使用) は、重要な飛躍だと思います。WP から iOS 開発に切り替えるには、WP から Droid に切り替えるよりも時間がかかります。これは、MvvmCross を使用するかどうかに関係なく当てはまります。MT 開発を行っている場合は、ネイティブ コードを行っているため、時間がかかります。 iOSを少し理解する(私の経験/意見では!)。

ほとんどの場合、私は個人的に数万行のコードを書き、数百のブログ投稿とスタックオーバーフローの回答を作成し、mvvmcross でおそらく 10 セッションを提示しました。私は 5 つの異なるオペレーティング システムでこれを行いました。そのうちの 4 つはコーディング中に学習し、そのすべてでプラットフォームやツールのバグや特異性と戦ってきました。

私はできる限り投稿を続けます - そして「無料」で運営し続けます

また、すべてのユーザーが自分の経験について投稿したりブログに投稿したりすることもお勧めします。このようにして、知識が生成され、共有されることを願っています。これを読んで、mvvmcross を使用し、クロスプラットフォーム コーディングについて何かを学んでいる人 (良いか悪いか) は、その知識を共有することを検討してください。インスピレーションを得るために、ユーザーが書いたプレゼンテーションやブログ投稿のいくつかをチェックしてください。ありがとう :)


また、質問するときは、使用している mvvmcross のバージョンと、コードのベースにしているサンプルを示してください。master と vNext には違いがあり、時間の経過とともに修正されています。この情報を投稿してください。あなたが見ているエラーを理解したり再現したりするのに役立ちます。

ありがとう :)

于 2012-12-08T22:49:29.693 に答える
0

これは少し古いことは知っていますが、同じ問題を抱えていました。

ViewDidLoad が呼び出されたときに、View.designer.cs ファイルのアウトレット プロパティにアクセスしようとすると、null でした。

Visual Studio の xib ファイルが InterfaceDefinition のビルド アクションに設定されていないことが判明しました。

うまくいけば、これはこの問題に遭遇した他の誰かを助けるでしょう.

于 2014-05-24T03:21:49.650 に答える