XCodeを使用してモノタッチでUIPickerViewを作成し、サンプルデータを入力する方法を誰かが説明できますか?
私はここで例を見ました: https://github.com/xamarin/monotouch-samples/blob/master/MonoCatalog-MonoDevelop/PickerViewController.xib.cs しかし、これはあまり役に立ちませんでしたXCodeでUIPickerViewを作成しているので。これが私がこれまでに持っているものです:
public partial class StatusPickerPopoverView : UIViewController
{
public StatusPickerPopoverView (IntPtr handle) : base (handle)
{
pickerStatus = new UIPickerView();
pickerStatus.Model = new StatusPickerViewModel();
}
public StatusPickerPopoverView (): base ()
{
}
public class StatusPickerViewModel : UIPickerViewModel
{
public override int GetComponentCount (UIPickerView picker)
{
return 1;
}
public override int GetRowsInComponent (UIPickerView picker, int component)
{
return 5;
}
public override string GetTitle (UIPickerView picker, int row, int component)
{
return "Component " + row.ToString();
}
}
}
だから私は基本的に答えを見つけました、そしてそれはあなたが考えることができるよりも簡単でした!
モデルはViewDidLoadで設定する必要があります。そうしないと、クラッシュします...そのため、モデルは正しく入力されていませんでした。注意:「ViewDidLoad」で設定してください。
public partial class StatusPickerPopoverView : UIViewController
{
public StatusPickerPopoverView (IntPtr handle) : base (handle)
{
}
public override ViewDidLoad()
{
base.ViewDidLoad();
pickerStatus = new UIPickerView();
pickerStatus.Model = new StatusPickerViewModel();
}
public class StatusPickerViewModel : UIPickerViewModel
{
public override int GetComponentCount (UIPickerView picker)
{
return 1;
}
public override int GetRowsInComponent (UIPickerView picker, int component)
{
return 5;
}
public override string GetTitle (UIPickerView picker, int row, int component)
{
return "Component " + row.ToString();
}
}
}
Xamarin Studio 5.10:
public partial class ViewController : UIViewController
{
UIPickerView samplePicker;
public ViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
samplePicker = new UIPickerView (new CoreGraphics.CGRect (10f, 244f, this.View.Frame.Width - 20, 250f));
samplePicker.BackgroundColor = UIColor.LightGray;
samplePicker.Model = new StatusPickerViewModel ();
}
public class StatusPickerViewModel : UIPickerViewModel
{
public override nint GetRowsInComponent (UIPickerView pickerView, nint component)
{
return 5;
}
public override string GetTitle (UIPickerView pickerView, nint row, nint component)
{
return "Title";
}
public override nint GetComponentCount (UIPickerView pickerView)
{
return 1;
}
}
public override void ViewDidAppear (bool animated)
{
base.ViewDidAppear (animated);
this.View.AddSubview (samplePicker);
}
}
UIPickerViewModelインスタンスでUIPickerViewのModelプロパティを設定したいと思います。
pickerStatus.Model = new StatusPickerViewModel();
IListにUIPickerViewModelを提供する要点は次のとおりです。 https://Gist.github.com/jfoshee/5223962
ブログ投稿 を作成し、現在の回答よりも詳細に説明しました。
まず、ストーリーボードにUIPickerViewを追加します。 UIPickerに名前を追加します。
次に、UIPickerViewModelを実装するクラスが必要です。これは、それを設定するPickersモデルを設定します。 Android開発に精通している場合、Xamarin iOS用のピッカーのセットアップは奇妙に思えるかもしれません。ピッカーにリストを入力するだけでは不十分です。
最後に、UIPickerViewのモデルを作成したクラスに設定します。