2012-12-08 18 views
1

在我的view.designer.cs中,我的插座是由xcode生成的。Outlet在ViewDidLoad中爲null,使用mvvmcross

當開始調試時,我添加綁定時在我的屬性上有一個空引用異常,在下面的代碼中this.SampleText爲null。

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

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

我注意到,在應用程序的輸出以下錯誤: 「應用程序窗口預計將有在應用程序啓動的最後一個根視圖控制器」

我錯過了什麼?

回答

1

這聽起來像你可能有一個更一般的問題與您的iOS設置 - 可能與Xcode和MonoTouch之間的XIB文件同步的一些問題。

在嘗試添加MvvmCross綁定之前,請查看MonoTouch圖層 - 如果在MonoTouch圖層中this.SampleText爲null,則需要先解決該問題,然後才能添加MvvmCross綁定代碼。

MonoTouch軟調試器是一個很好的工具來幫助調試 - 並且模擬器的調試周期非常快 - 所以這通常有助於解決這些問題。


從你的部分回答了這個問題,它確實喜歡你的聲音試圖使用一個基於對話框的UI一個XIB - 這可能是行不通的 - 我想MonoTouch.Dialog總是基於一個單一表 - 所以它不是期待XIB(至少,這是我的經驗!)


至於「應用程序窗口有望在應用程序啓動年底有一個根視圖控制器」這聽起來更像是一個普通也許你的AppDelegate.cs存在問題。或者,這可能是主持人的一個問題。你使用哪個演示者?

該錯誤消息本身在StackOverflow上有很多命中 - 例如, Applications are expected to have a root view controller at the end of application launch - 但我不確定其中哪些適合您的情況。


我必須承認,一切都無法與iOS和MVVMCross清楚我

的程序員從C#的背景,我不認爲這是不尋常的來臨 - 我覺得從VS跳在Windows上到Mac上的MonoDevelop(帶有一點xcode)是一個不小的飛躍。從WP轉換到iOS開發需要更多的時間,而不是從WP轉換到Droid - 這與您是否使用MvvmCross無關 - 如果您正在開發MT開發,您正在使用本機代碼,所以您必須花費一些時間瞭解一下iOS(以我的經驗/觀點!)。

大多數情況下,我親自編寫了數以萬計的代碼行,撰寫了數百篇博文和stackoverflow答案,並在mvvmcross上呈現了10個會話。我已經在五個不同的操作系統上完成了這個任務,其中四個是我在編寫代碼時學到的,所有這些操作系統都是針對平臺和工具錯誤以及特性進行的。

我會繼續張貼,就像我可以 - 而且繼續爲「自由」

我也鼓勵每一位用戶發佈和博客上寫下他們的經驗太操作。通過這種方式,我希望知識能夠產生和分享。對於正在閱讀本文的任何人,使用mvvmcross並瞭解有關跨平臺編碼的內容 - 無論好壞 - 那麼請考慮分享這些知識。爲了獲得靈感,請查看用戶撰寫的一些演示文稿和博客文章 - 我嘗試在http://slodge.blogspot.co.uk/p/mvvmcross-quicklist.html上列出它們。謝謝:)


而且,提問的時候,請你能表明你正在使用的mvvmcross的版本和樣品(S)你在基礎代碼 - 有船長和vNext有差異隨着時間的推移已經修復 - 因此發佈此信息將幫助我嘗試瞭解和/或複製您所看到的錯誤。

謝謝:)

+0

嗨,斯圖亞特,感謝您的答案。 –

+0

我真的覺得你的支持令人難以置信! 我真的很困惑與不同的MvxXXXXViewControler,我試圖複製/粘貼您的示例代碼,但我認爲我應該潛入您的代碼作爲Android ;-) 關於博客,我已經計劃爲「傻瓜「,詳細的一步一步編碼。由於我仍然是OSX/iOS的虛擬人物,並且在一個月前也是Monodroid和WP7的一員,所以我認爲我完全符合這個要求;-) 我希望這可以幫助monotouch/droid和MVVMCross的採用。 –

+0

謝謝 - 我對分享知識的評論是一般的,針對每個人,而不是你。每一個貢獻都非常值得讚賞 - 世界不斷變化,我們都在不斷學習:)但我也鼓勵人們找到平衡 - 不要在筆記本電腦上花費太長時間 - 爲孩子們,妻子和孩子們節省大量時間,家人,朋友,狗等:)謝謝:) – Stuart

0

我知道這是有點老了,但我只是有同樣的問題。

當我嘗試訪問ViewDidLoad時,我的View.designer.cs文件中的插座屬性爲null。

原來,我的Visual Studio中的xib文件不再被設置爲InterfaceDefinition的構建操作。

希望這可以幫助別人在這個問題上磕磕絆絆。