2015-01-05 55 views
2
Xamarin.iOS應用

我想了解故事板在iOS開發的工作和MVVMCross在如何適應我認爲最好的辦法是建立MVVMCRoss TipCalc的IOS版本教程開發利用MVVMCross和故事

我正在使用Storyboard,因爲您無法在Visual Studio中編輯XIB。我目前的想法是每個屏幕一個Storyboard。

我有工作,但感覺就像我比判斷更多的運氣做到了。所以我想檢查我的理解。

在TipCalc.UI.Touch我

  • TipViewController.cs
  • TipViewController.storyboard

我在這SO answer.添加自定義MVX View容器的建議在CreateViewOfType方法我調用Storyboard.InstantiateViewController並將其轉換爲IMvxTouchView。

控制器怎麼會是觀呢?

我沒有計劃在每一個情節串連圖板「視圖」。

如果你有一個故事板的多個視圖,你會不會有按次控制器?

當我在故事板設計器中調出「視圖」的屬性窗口時,它在「身份」部分有一個名稱和一個類。 Class屬性的用途是什麼?這是否會創建一個代碼隱藏文件?

我創造的控制器

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 
    this.CreateBinding(this.tipValueText).To<TipViewModel>(vm => vm.Tip).Apply(); 
    this.CreateBinding(this.subTotalTextBox).To<TipViewModel>(vm => vm.SubTotal).Apply(); 
    this.CreateBinding(this.generositySlider).To<TipViewModel>(vm => vm.Generosity).Apply(); 
} 

這些綁定工作的viewDidLoad方法查看到視圖模型綁定,但再次我只是想檢查,這是其他人如何做到這一點。

回答

1

iOS ViewController實際上是MVVMCross應用程序中的視圖。您可以將視圖控制器視爲視圖背後的代碼(所以就像Windows Phone/Windows Store應用程序將具有XAML和相關的.cs文件,或者Android應用程序將具有axml和java視圖類)

是,使用多個視圖時,在一個單一的故事板每一個實際上是一個視圖 - 控制(因爲這是在Storyboard的屏幕是什麼)

類屬性定義了視圖 - 控制類故事板中使用的佈局(這樣要使用的代碼隱藏類,如果它不存在,它會創建)

我更喜歡一個故事板,因爲大多數我的應用程序沒有太多的屏幕所以這些都是我弗洛步驟在現有的故事板創建視圖時瓦特

  1. 在視圖名稱添加的ViewController
  2. 鍵入類字段(該名稱將對應於視圖模型名稱,因此對HomeView HomeViewModel等)。只要你點擊進入,ViewController類應該被創建。
  3. 鍵入與故事板ID相同的視圖名稱(用於獲取該視圖)
  4. 添加控件並設置其名稱。設置控件的名稱將更新的是爲視圖控制器
  5. 創建創建的視圖控制器類的viewDidLoad中覆蓋的.designer文件,併成立了我的綁定

如果使用每次觀看故事板,創建故事板與正確的名稱(HomeView例如)應該創建視圖控制器,並設計文件你,給你與一個故事板視圖 - 控制準備去

編輯: 在您的綁定,您可以使用一個set.Apply();在最後

+1

感謝您花時間回答我漫不經心的問題:-) –