2012-05-24 153 views
2

當我創建GitHub上Github link爲什麼我UIPickerView選擇

當一排點擊或試圖在UIPickerView滾動就會死機樣本,我不知道爲什麼崩潰。

// create a ActionSheet 
var actionPickerSheet = new UIActionSheet("Select a Category"); 
actionPickerSheet.Style = UIActionSheetStyle.BlackTranslucent; 
// Create UIpickerView 
var catPicker = new UIPickerView(){ 
    Model = new catPickerModel(), 
    AutosizesSubviews = true, 
    Hidden = false, 
    ShowSelectionIndicator = true 
}; 
// show inside view and add the catPicker as subView 
actionPickerSheet.ShowInView(View); 
actionPickerSheet.AddSubview(catPicker); 
// resize both views so it fits smoothly 
actionPickerSheet.Frame = new RectangleF(0,100,320,500); 
catPicker.Frame = new RectangleF(actionPickerSheet.Frame.X,actionPickerSheet.Frame.Y-25,actionPickerSheet.Frame.Width, 216); 

和模型

private class catPickerModel : UIPickerViewModel 
{ 
    public string[] protocolNames = new string[] 
    { 
     "Web", "Phone Call", "Google Maps", "SMS", "Email" 
    }; 

    public override int GetComponentCount(UIPickerView uipv) 
    { 
     return 1; 
    } 

    public override int GetRowsInComponent(UIPickerView uipv, int comp) 
    { 
     //each component has its own count. 
     int rows = protocolNames.Length; 
     return(rows); 
    } 

    public override string GetTitle(UIPickerView uipv, int row, int comp) 
    { 
     //each component would get its own title. 
     return protocolNames[row]; 
    } 

    public override void Selected(UIPickerView uipv, int row, int comp) 
    { 
     Console.WriteLine("selected:" + row); 
    } 

    public override float GetComponentWidth(UIPickerView uipv, int comp) 
    { 
     return 300f; 
    } 
} 

我不知道爲什麼它總是崩潰,是它的一些方法,我在模型缺失還是我試圖做到這一點的方式是錯誤?

感謝

+1

請添加一些關於崩潰本身的信息,如堆棧跟蹤。 – poupou

回答

3

儘量讓你的catPicker到類的私有變量:

namespace TextfieldUIPickerView 
{ 
    public partial class TextfieldUIPickerViewViewController : UIViewController 
    { 
     private UIPickerView catPicker; 
... 

貌似GC收集您的catPicker和配置它。

+0

謝謝!修復它。 – nytrm

+0

不要忘記標記正確答案爲已接受。 – Lars