2012-05-24 117 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